101623: Override createAndSendGetRequest in BrowseDefinitionDataService

This commit is contained in:
Nona Luypaert
2023-05-23 17:02:10 +02:00
parent f01c58e84d
commit d1c91b8bc2
2 changed files with 39 additions and 31 deletions

View File

@@ -19,11 +19,12 @@ const ENTRY_COMPONENTS = [
BrowseByTitlePageComponent,
BrowseByMetadataPageComponent,
BrowseByDatePageComponent,
BrowseByTaxonomyPageComponent,
ThemedBrowseByMetadataPageComponent,
ThemedBrowseByDatePageComponent,
ThemedBrowseByTitlePageComponent,
ThemedBrowseByTaxonomyPageComponent,
];
@NgModule({
@@ -36,8 +37,6 @@ const ENTRY_COMPONENTS = [
declarations: [
BrowseBySwitcherComponent,
ThemedBrowseBySwitcherComponent,
BrowseByTaxonomyPageComponent,
ThemedBrowseByTaxonomyPageComponent,
...ENTRY_COMPONENTS
],
exports: [

View File

@@ -1,3 +1,4 @@
// eslint-disable-next-line max-classes-per-file
import { Injectable } from '@angular/core';
import { BROWSE_DEFINITION } from '../shared/browse-definition.resource-type';
import { RequestService } from '../data/request.service';
@@ -17,18 +18,14 @@ import { take } from 'rxjs/operators';
import { BrowseDefinitionRestRequest } from '../data/request.models';
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.
*
* @param href$ The url of browse we want to retrieve. Can be a string or
* an Observable<string>
* @param useCachedVersionIfAvailable If this is true, the request will only be sent if there's
* no valid cached version. Defaults to true
*/
createAndSendGetRequest(href$: string | Observable<string>, useCachedVersionIfAvailable: boolean = true) {
export const createAndSendBrowseDefinitionGetRequest = (requestService: RequestService,
responseMsToLive: number,
href$: string | Observable<string>,
useCachedVersionIfAvailable: boolean = true): void => {
if (isNotEmpty(href$)) {
if (typeof href$ === 'string') {
href$ = observableOf(href$);
@@ -38,14 +35,22 @@ class BrowseDefinitionFindAllDataImpl extends FindAllDataImpl<BrowseDefinition>
isNotEmptyOperator(),
take(1)
).subscribe((href: string) => {
const requestId = this.requestService.generateRequestId();
const requestId = requestService.generateRequestId();
const request = new BrowseDefinitionRestRequest(requestId, href);
if (hasValue(this.responseMsToLive)) {
request.responseMsToLive = this.responseMsToLive;
if (hasValue(responseMsToLive)) {
request.responseMsToLive = responseMsToLive;
}
this.requestService.send(request, useCachedVersionIfAvailable);
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>>> {
return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow);
}
createAndSendGetRequest(href$: string | Observable<string>, useCachedVersionIfAvailable: boolean = true) {
createAndSendBrowseDefinitionGetRequest(this.requestService, this.responseMsToLive, href$, useCachedVersionIfAvailable);
}
}