mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
101623: Override createAndSendGetRequest in BrowseDefinitionDataService
This commit is contained in:
@@ -19,11 +19,12 @@ const ENTRY_COMPONENTS = [
|
|||||||
BrowseByTitlePageComponent,
|
BrowseByTitlePageComponent,
|
||||||
BrowseByMetadataPageComponent,
|
BrowseByMetadataPageComponent,
|
||||||
BrowseByDatePageComponent,
|
BrowseByDatePageComponent,
|
||||||
|
BrowseByTaxonomyPageComponent,
|
||||||
|
|
||||||
ThemedBrowseByMetadataPageComponent,
|
ThemedBrowseByMetadataPageComponent,
|
||||||
ThemedBrowseByDatePageComponent,
|
ThemedBrowseByDatePageComponent,
|
||||||
ThemedBrowseByTitlePageComponent,
|
ThemedBrowseByTitlePageComponent,
|
||||||
|
ThemedBrowseByTaxonomyPageComponent,
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@@ -36,8 +37,6 @@ const ENTRY_COMPONENTS = [
|
|||||||
declarations: [
|
declarations: [
|
||||||
BrowseBySwitcherComponent,
|
BrowseBySwitcherComponent,
|
||||||
ThemedBrowseBySwitcherComponent,
|
ThemedBrowseBySwitcherComponent,
|
||||||
BrowseByTaxonomyPageComponent,
|
|
||||||
ThemedBrowseByTaxonomyPageComponent,
|
|
||||||
...ENTRY_COMPONENTS
|
...ENTRY_COMPONENTS
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
// eslint-disable-next-line max-classes-per-file
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { BROWSE_DEFINITION } from '../shared/browse-definition.resource-type';
|
import { BROWSE_DEFINITION } from '../shared/browse-definition.resource-type';
|
||||||
import { RequestService } from '../data/request.service';
|
import { RequestService } from '../data/request.service';
|
||||||
@@ -17,35 +18,39 @@ import { take } from 'rxjs/operators';
|
|||||||
import { BrowseDefinitionRestRequest } from '../data/request.models';
|
import { BrowseDefinitionRestRequest } from '../data/request.models';
|
||||||
import { BrowseDefinition } from '../shared/browse-definition.model';
|
import { BrowseDefinition } from '../shared/browse-definition.model';
|
||||||
|
|
||||||
|
/**
|
||||||
class BrowseDefinitionFindAllDataImpl extends FindAllDataImpl<BrowseDefinition> {
|
* Create a GET request for the given href, and send it.
|
||||||
/**
|
* Use a GET request specific for BrowseDefinitions.
|
||||||
* Create a GET request for the given href, and send it.
|
*/
|
||||||
* Use a GET request specific for BrowseDefinitions.
|
export const createAndSendBrowseDefinitionGetRequest = (requestService: RequestService,
|
||||||
*
|
responseMsToLive: number,
|
||||||
* @param href$ The url of browse we want to retrieve. Can be a string or
|
href$: string | Observable<string>,
|
||||||
* an Observable<string>
|
useCachedVersionIfAvailable: boolean = true): void => {
|
||||||
* @param useCachedVersionIfAvailable If this is true, the request will only be sent if there's
|
if (isNotEmpty(href$)) {
|
||||||
* no valid cached version. Defaults to true
|
if (typeof href$ === 'string') {
|
||||||
*/
|
href$ = observableOf(href$);
|
||||||
createAndSendGetRequest(href$: string | Observable<string>, useCachedVersionIfAvailable: boolean = true) {
|
|
||||||
if (isNotEmpty(href$)) {
|
|
||||||
if (typeof href$ === 'string') {
|
|
||||||
href$ = observableOf(href$);
|
|
||||||
}
|
|
||||||
|
|
||||||
href$.pipe(
|
|
||||||
isNotEmptyOperator(),
|
|
||||||
take(1)
|
|
||||||
).subscribe((href: string) => {
|
|
||||||
const requestId = this.requestService.generateRequestId();
|
|
||||||
const request = new BrowseDefinitionRestRequest(requestId, href);
|
|
||||||
if (hasValue(this.responseMsToLive)) {
|
|
||||||
request.responseMsToLive = this.responseMsToLive;
|
|
||||||
}
|
|
||||||
this.requestService.send(request, useCachedVersionIfAvailable);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
href$.pipe(
|
||||||
|
isNotEmptyOperator(),
|
||||||
|
take(1)
|
||||||
|
).subscribe((href: string) => {
|
||||||
|
const requestId = requestService.generateRequestId();
|
||||||
|
const request = new BrowseDefinitionRestRequest(requestId, href);
|
||||||
|
if (hasValue(responseMsToLive)) {
|
||||||
|
request.responseMsToLive = responseMsToLive;
|
||||||
|
}
|
||||||
|
requestService.send(request, useCachedVersionIfAvailable);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom extension of {@link FindAllDataImpl} to be able to send BrowseDefinitionRestRequests
|
||||||
|
*/
|
||||||
|
class BrowseDefinitionFindAllDataImpl extends FindAllDataImpl<BrowseDefinition> {
|
||||||
|
createAndSendGetRequest(href$: string | Observable<string>, useCachedVersionIfAvailable: boolean = true) {
|
||||||
|
createAndSendBrowseDefinitionGetRequest(this.requestService, this.responseMsToLive, href$, useCachedVersionIfAvailable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,5 +92,9 @@ export class BrowseDefinitionDataService extends IdentifiableDataService<BrowseD
|
|||||||
findAll(options: FindListOptions = {}, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<BrowseDefinition>[]): Observable<RemoteData<PaginatedList<BrowseDefinition>>> {
|
findAll(options: FindListOptions = {}, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow: FollowLinkConfig<BrowseDefinition>[]): Observable<RemoteData<PaginatedList<BrowseDefinition>>> {
|
||||||
return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow);
|
return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createAndSendGetRequest(href$: string | Observable<string>, useCachedVersionIfAvailable: boolean = true) {
|
||||||
|
createAndSendBrowseDefinitionGetRequest(this.requestService, this.responseMsToLive, href$, useCachedVersionIfAvailable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user