Revert "93803: Update DataService constructor signatures"

This reverts commit a6fb4a6303.
This commit is contained in:
Yury Bondarenko
2022-09-12 12:29:04 +02:00
parent a6fb4a6303
commit abc9bbeae3
70 changed files with 180 additions and 290 deletions

View File

@@ -22,8 +22,6 @@ import { dataService } from '../data/base/data-service.decorator';
}) })
@dataService(BROWSE_DEFINITION) @dataService(BROWSE_DEFINITION)
export class BrowseDefinitionDataService extends IdentifiableDataService<BrowseDefinition> implements FindAllData<BrowseDefinition> { export class BrowseDefinitionDataService extends IdentifiableDataService<BrowseDefinition> implements FindAllData<BrowseDefinition> {
protected linkPath = 'browses';
private findAllData: FindAllDataImpl<BrowseDefinition>; private findAllData: FindAllDataImpl<BrowseDefinition>;
constructor( constructor(
@@ -32,9 +30,9 @@ export class BrowseDefinitionDataService extends IdentifiableDataService<BrowseD
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('browses', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -24,7 +24,7 @@ class TestService extends ConfigDataService {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super(BROWSE, requestService, rdbService, objectCache, halService);
} }
} }

View File

@@ -18,15 +18,13 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SUBMISSION_ACCESSES_TYPE) @dataService(SUBMISSION_ACCESSES_TYPE)
export class SubmissionAccessesConfigDataService extends ConfigDataService { export class SubmissionAccessesConfigDataService extends ConfigDataService {
protected linkPath = 'submissionaccessoptions';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('submissionaccessoptions', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -18,15 +18,13 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SUBMISSION_FORMS_TYPE) @dataService(SUBMISSION_FORMS_TYPE)
export class SubmissionFormsConfigDataService extends ConfigDataService { export class SubmissionFormsConfigDataService extends ConfigDataService {
protected linkPath = 'submissionforms';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('submissionforms', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -18,15 +18,13 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SUBMISSION_UPLOADS_TYPE) @dataService(SUBMISSION_UPLOADS_TYPE)
export class SubmissionUploadsConfigDataService extends ConfigDataService { export class SubmissionUploadsConfigDataService extends ConfigDataService {
protected linkPath = 'submissionuploads';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('submissionuploads', requestService, rdbService, objectCache, halService);
} }
findByHref(href: string, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow): Observable<RemoteData<SubmissionUploadsModel>> { findByHref(href: string, useCachedVersionIfAvailable = true, reRequestOnStale = true, ...linksToFollow): Observable<RemoteData<SubmissionUploadsModel>> {

View File

@@ -17,7 +17,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(ACCESS_STATUS) @dataService(ACCESS_STATUS)
export class AccessStatusDataService extends BaseDataService<AccessStatusObject> { export class AccessStatusDataService extends BaseDataService<AccessStatusObject> {
protected linkPath = 'accessStatus';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
@@ -25,7 +24,7 @@ export class AccessStatusDataService extends BaseDataService<AccessStatusObject>
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('accessStatus', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -32,7 +32,7 @@ class TestService extends BaseDataService<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super(undefined, requestService, rdbService, objectCache, halService);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -8,7 +8,7 @@
import { AsyncSubject, from as observableFrom, Observable, of as observableOf } from 'rxjs'; import { AsyncSubject, from as observableFrom, Observable, of as observableOf } from 'rxjs';
import { map, mergeMap, skipWhile, switchMap, take, tap, toArray } from 'rxjs/operators'; import { map, mergeMap, skipWhile, switchMap, take, tap, toArray } from 'rxjs/operators';
import { hasValue, isEmpty, isNotEmpty, isNotEmptyOperator } from '../../../shared/empty.util'; import { hasValue, isNotEmpty, isNotEmptyOperator } from '../../../shared/empty.util';
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model'; import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service'; import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import { RequestParam } from '../../cache/models/request-param.model'; import { RequestParam } from '../../cache/models/request-param.model';
@@ -31,23 +31,13 @@ import { HALDataService } from './hal-data-service.interface';
* *
* All DataService (or DataService feature) classes must * All DataService (or DataService feature) classes must
* - extend this class (or {@link IdentifiableDataService}) * - extend this class (or {@link IdentifiableDataService})
* - specify a {@link linkPath} * - implement any DataService features it requires in order to forward calls to it
* - implement any DataService features it requires in order to forward calls to it.
* {@link linkPath} and {@link responseMsToLive} must be passed through.
* *
* ``` * ```
* export class SomeDataService extends BaseDataService<Something> implements CreateData<Something>, SearchData<Something> { * export class SomeDataService extends BaseDataService<Something> implements CreateData<Something>, SearchData<Something> {
* protected linkPath = 'something';
* protected responseMsToLive = 3 * 60 * 1000; // not required
*
* private createData: CreateData<Something>; * private createData: CreateData<Something>;
* private searchData: SearchDataData<Something>; * private searchData: SearchDataData<Something>;
* *
* constructor(...) {
* this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, ...);
* this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, ...);
* }
*
* create(...) { * create(...) {
* return this.createData.create(...); * return this.createData.create(...);
* } * }
@@ -59,40 +49,19 @@ import { HALDataService } from './hal-data-service.interface';
* ``` * ```
*/ */
export class BaseDataService<T extends CacheableObject> implements HALDataService<T> { export class BaseDataService<T extends CacheableObject> implements HALDataService<T> {
/**
* The REST endpoint this data service communicates with
*/
protected linkPath: string;
/**
* Allows subclasses to reset the response cache time.
*/
protected responseMsToLive?: number;
/**
* @param requestService
* @param rdbService
* @param objectCache
* @param halService
* @param linkPath Optionally sets the {@link linkPath}; to be used by composable features.
* @param responseMsToLive Optionally sets the {@link responseMsToLive}; to be used by composable features.
*/
constructor( constructor(
protected linkPath: string,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
linkPath?: string, protected responseMsToLive?: number,
responseMsToLive?: number,
) { ) {
if (isEmpty(this.linkPath) && isNotEmpty(linkPath)) {
this.linkPath = linkPath;
}
if (isEmpty(this.responseMsToLive) && isNotEmpty(responseMsToLive)) {
this.responseMsToLive = responseMsToLive;
}
} }
/**
* Allows subclasses to reset the response cache time.
*/
/** /**
* Get the endpoint for browsing * Get the endpoint for browsing

View File

@@ -31,7 +31,7 @@ class TestService extends CreateDataImpl<any> {
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(undefined, undefined, requestService, rdbService, objectCache, halService, notificationsService); super(undefined, requestService, rdbService, objectCache, halService, notificationsService, undefined);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -45,14 +45,14 @@ export interface CreateData<T extends CacheableObject> {
export class CreateDataImpl<T extends CacheableObject> extends BaseDataService<T> implements CreateData<T> { export class CreateDataImpl<T extends CacheableObject> extends BaseDataService<T> implements CreateData<T> {
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected responseMsToLive: number,
) { ) {
super(requestService, rdbService, objectCache, halService, linkPath, responseMsToLive); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive);
} }
/** /**

View File

@@ -36,7 +36,7 @@ class TestService extends DeleteDataImpl<any> {
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(undefined, undefined, constructIdEndpointDefault, requestService, rdbService, objectCache, halService, notificationsService); super(undefined, requestService, rdbService, objectCache, halService, notificationsService, undefined, constructIdEndpointDefault);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -46,15 +46,15 @@ export interface DeleteData<T extends CacheableObject> {
export class DeleteDataImpl<T extends CacheableObject> extends IdentifiableDataService<T> implements DeleteData<T> { export class DeleteDataImpl<T extends CacheableObject> extends IdentifiableDataService<T> implements DeleteData<T> {
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected constructIdEndpoint: ConstructIdEndpoint,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected responseMsToLive: number,
protected constructIdEndpoint: ConstructIdEndpoint,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive, constructIdEndpoint);
if (hasNoValue(constructIdEndpoint)) { if (hasNoValue(constructIdEndpoint)) {
throw new Error(`DeleteDataImpl initialized without a constructIdEndpoint method (linkPath: ${linkPath})`); throw new Error(`DeleteDataImpl initialized without a constructIdEndpoint method (linkPath: ${linkPath})`);
} }

View File

@@ -71,7 +71,7 @@ class TestService extends FindAllDataImpl<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(undefined, undefined, requestService, rdbService, objectCache, halService); super(undefined, requestService, rdbService, objectCache, halService, undefined);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -61,13 +61,13 @@ export interface FindAllData<T extends CacheableObject> {
export class FindAllDataImpl<T extends CacheableObject> extends BaseDataService<T> implements FindAllData<T> { export class FindAllDataImpl<T extends CacheableObject> extends BaseDataService<T> implements FindAllData<T> {
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected responseMsToLive: number,
) { ) {
super(requestService, rdbService, objectCache, halService, linkPath, responseMsToLive); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive);
} }
/** /**

View File

@@ -29,7 +29,7 @@ class TestService extends IdentifiableDataService<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super(undefined, requestService, rdbService, objectCache, halService);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -28,22 +28,21 @@ export const constructIdEndpointDefault = (endpoint, resourceID) => `${endpoint}
/** /**
* A type of data service that deals with objects that have an ID. * A type of data service that deals with objects that have an ID.
*
* The effective endpoint to use for the ID can be adjusted by providing a different {@link ConstructIdEndpoint} method.
* This method is passed as an argument so that it can be set on data service features without having to override them.
*/ */
export class IdentifiableDataService<T extends CacheableObject> extends BaseDataService<T> { export class IdentifiableDataService<T extends CacheableObject> extends BaseDataService<T> {
/**
* A method to construct the effective endpoint to use for the ID.
* Also passed as an optional constructor argument so that it can be set on data service features without having to override them.
* @protected
*/
protected constructIdEndpoint: ConstructIdEndpoint = constructIdEndpointDefault;
constructor( constructor(
protected linkPath: string,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected responseMsToLive?: number,
protected constructIdEndpoint: ConstructIdEndpoint = constructIdEndpointDefault,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive);
} }
/** /**

View File

@@ -38,7 +38,7 @@ class TestService extends PatchDataImpl<any> {
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected comparator: ChangeAnalyzer<Item>, protected comparator: ChangeAnalyzer<Item>,
) { ) {
super(undefined, undefined, constructIdEndpointDefault, requestService, rdbService, objectCache, halService, comparator); super(undefined, requestService, rdbService, objectCache, halService, comparator, undefined, constructIdEndpointDefault);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -65,15 +65,15 @@ export interface PatchData<T extends CacheableObject> {
export class PatchDataImpl<T extends CacheableObject> extends IdentifiableDataService<T> implements PatchData<T> { export class PatchDataImpl<T extends CacheableObject> extends IdentifiableDataService<T> implements PatchData<T> {
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected constructIdEndpoint: ConstructIdEndpoint,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected comparator: ChangeAnalyzer<T>, protected comparator: ChangeAnalyzer<T>,
protected responseMsToLive: number,
protected constructIdEndpoint: ConstructIdEndpoint,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive, constructIdEndpoint);
if (hasNoValue(constructIdEndpoint)) { if (hasNoValue(constructIdEndpoint)) {
throw new Error(`PatchDataImpl initialized without a constructIdEndpoint method (linkPath: ${linkPath})`); throw new Error(`PatchDataImpl initialized without a constructIdEndpoint method (linkPath: ${linkPath})`);
} }

View File

@@ -30,7 +30,7 @@ class TestService extends PutDataImpl<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(undefined, undefined, requestService, rdbService, objectCache, halService); super(undefined, requestService, rdbService, objectCache, halService, undefined);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -39,13 +39,13 @@ export interface PutData<T extends CacheableObject> {
export class PutDataImpl<T extends CacheableObject> extends BaseDataService<T> implements PutData<T> { export class PutDataImpl<T extends CacheableObject> extends BaseDataService<T> implements PutData<T> {
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected responseMsToLive: number,
) { ) {
super(requestService, rdbService, objectCache, halService, linkPath, responseMsToLive); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive);
} }
/** /**

View File

@@ -68,7 +68,7 @@ class TestService extends SearchDataImpl<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(undefined, undefined, requestService, rdbService, objectCache, halService); super(undefined, requestService, rdbService, objectCache, halService, undefined);
} }
public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> { public getBrowseEndpoint(options: FindListOptions = {}, linkPath: string = this.linkPath): Observable<string> {

View File

@@ -80,14 +80,14 @@ export class SearchDataImpl<T extends CacheableObject> extends BaseDataService<T
*/ */
constructor( constructor(
protected linkPath: string, protected linkPath: string,
protected responseMsToLive: number,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected responseMsToLive: number,
private constructSearchEndpoint: ConstructSearchEndpoint = constructSearchEndpointDefault, private constructSearchEndpoint: ConstructSearchEndpoint = constructSearchEndpointDefault,
) { ) {
super(requestService, rdbService, objectCache, halService, linkPath, responseMsToLive); super(linkPath, requestService, rdbService, objectCache, halService, responseMsToLive);
if (hasNoValue(constructSearchEndpoint)) { if (hasNoValue(constructSearchEndpoint)) {
throw new Error(`SearchDataImpl initialized without a constructSearchEndpoint method (linkPath: ${linkPath})`); throw new Error(`SearchDataImpl initialized without a constructSearchEndpoint method (linkPath: ${linkPath})`);
} }

View File

@@ -42,8 +42,6 @@ import { dataService } from './base/data-service.decorator';
}) })
@dataService(BITSTREAM) @dataService(BITSTREAM)
export class BitstreamDataService extends IdentifiableDataService<Bitstream> implements SearchData<Bitstream>, PatchData<Bitstream>, DeleteData<Bitstream> { export class BitstreamDataService extends IdentifiableDataService<Bitstream> implements SearchData<Bitstream>, PatchData<Bitstream>, DeleteData<Bitstream> {
protected linkPath = 'bitstreams';
private searchData: SearchDataImpl<Bitstream>; private searchData: SearchDataImpl<Bitstream>;
private patchData: PatchDataImpl<Bitstream>; private patchData: PatchDataImpl<Bitstream>;
private deleteData: DeleteDataImpl<Bitstream>; private deleteData: DeleteDataImpl<Bitstream>;
@@ -58,11 +56,11 @@ export class BitstreamDataService extends IdentifiableDataService<Bitstream> imp
protected comparator: DSOChangeAnalyzer<Bitstream>, protected comparator: DSOChangeAnalyzer<Bitstream>,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('bitstreams', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.patchData = new PatchDataImpl<Bitstream>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<Bitstream>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -41,6 +41,7 @@ const selectedBitstreamFormatSelector = createSelector(
@Injectable() @Injectable()
@dataService(BITSTREAM_FORMAT) @dataService(BITSTREAM_FORMAT)
export class BitstreamFormatDataService extends IdentifiableDataService<BitstreamFormat> implements FindAllData<BitstreamFormat>, DeleteData<BitstreamFormat> { export class BitstreamFormatDataService extends IdentifiableDataService<BitstreamFormat> implements FindAllData<BitstreamFormat>, DeleteData<BitstreamFormat> {
protected linkPath = 'bitstreamformats'; protected linkPath = 'bitstreamformats';
private findAllData: FindAllDataImpl<BitstreamFormat>; private findAllData: FindAllDataImpl<BitstreamFormat>;
@@ -54,10 +55,10 @@ export class BitstreamFormatDataService extends IdentifiableDataService<Bitstrea
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected store: Store<CoreState>, protected store: Store<CoreState>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('bitstreamformats', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -32,8 +32,6 @@ import { dataService } from './base/data-service.decorator';
) )
@dataService(BUNDLE) @dataService(BUNDLE)
export class BundleDataService extends IdentifiableDataService<Bundle> implements PatchData<Bundle> { export class BundleDataService extends IdentifiableDataService<Bundle> implements PatchData<Bundle> {
protected linkPath = 'bundles';
private bitstreamsEndpoint = 'bitstreams'; private bitstreamsEndpoint = 'bitstreams';
private patchData: PatchDataImpl<Bundle>; private patchData: PatchDataImpl<Bundle>;
@@ -45,9 +43,9 @@ export class BundleDataService extends IdentifiableDataService<Bundle> implement
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected comparator: DSOChangeAnalyzer<Bundle>, protected comparator: DSOChangeAnalyzer<Bundle>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('bundles', requestService, rdbService, objectCache, halService);
this.patchData = new PatchDataImpl<Bundle>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<Bundle>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -38,8 +38,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(COLLECTION) @dataService(COLLECTION)
export class CollectionDataService extends ComColDataService<Collection> { export class CollectionDataService extends ComColDataService<Collection> {
protected linkPath = 'collections';
protected errorTitle = 'collection.source.update.notifications.error.title'; protected errorTitle = 'collection.source.update.notifications.error.title';
protected contentSourceError = 'collection.source.update.notifications.error.content'; protected contentSourceError = 'collection.source.update.notifications.error.content';
@@ -54,7 +52,7 @@ export class CollectionDataService extends ComColDataService<Collection> {
protected communityDataService: CommunityDataService, protected communityDataService: CommunityDataService,
protected translate: TranslateService, protected translate: TranslateService,
) { ) {
super(requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService); super('collections', requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService);
} }
/** /**

View File

@@ -33,7 +33,6 @@ const communitiesEndpoint = 'https://rest.api/core/communities';
const communityEndpoint = `${communitiesEndpoint}/${scopeID}`; const communityEndpoint = `${communitiesEndpoint}/${scopeID}`;
class TestService extends ComColDataService<any> { class TestService extends ComColDataService<any> {
protected linkPath = 'something';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
@@ -46,8 +45,9 @@ class TestService extends ComColDataService<any> {
protected http: HttpClient, protected http: HttpClient,
protected bitstreamDataService: BitstreamDataService, protected bitstreamDataService: BitstreamDataService,
protected comparator: DSOChangeAnalyzer<Community>, protected comparator: DSOChangeAnalyzer<Community>,
protected linkPath: string
) { ) {
super(requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService); super('something', requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService);
} }
protected getFindByParentHref(parentUUID: string): Observable<string> { protected getFindByParentHref(parentUUID: string): Observable<string> {
@@ -131,7 +131,8 @@ describe('ComColDataService', () => {
notificationsService, notificationsService,
http, http,
bitstreamDataService, bitstreamDataService,
comparator comparator,
LINK_NAME
); );
} }

View File

@@ -37,6 +37,7 @@ export abstract class ComColDataService<T extends Community | Collection> extend
private deleteData: DeleteData<T>; private deleteData: DeleteData<T>;
protected constructor( protected constructor(
protected linkPath: string,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
@@ -45,13 +46,13 @@ export abstract class ComColDataService<T extends Community | Collection> extend
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected bitstreamDataService: BitstreamDataService, protected bitstreamDataService: BitstreamDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, ); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.searchData = new SearchDataImpl<T>(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, ); this.searchData = new SearchDataImpl<T>(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.patchData = new PatchDataImpl<T>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<T>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -22,8 +22,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(COMMUNITY) @dataService(COMMUNITY)
export class CommunityDataService extends ComColDataService<Community> { export class CommunityDataService extends ComColDataService<Community> {
protected linkPath = 'communities';
protected topLinkPath = 'search/top'; protected topLinkPath = 'search/top';
constructor( constructor(
@@ -35,7 +33,7 @@ export class CommunityDataService extends ComColDataService<Community> {
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected bitstreamDataService: BitstreamDataService, protected bitstreamDataService: BitstreamDataService,
) { ) {
super(requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService); super('communities', requestService, rdbService, objectCache, halService, comparator, notificationsService, bitstreamDataService);
} }
getEndpoint() { getEndpoint() {

View File

@@ -17,7 +17,6 @@ import { dataService } from './base/data-service.decorator';
* Data Service responsible for retrieving Configuration properties * Data Service responsible for retrieving Configuration properties
*/ */
export class ConfigurationDataService extends IdentifiableDataService<ConfigurationProperty> { export class ConfigurationDataService extends IdentifiableDataService<ConfigurationProperty> {
protected linkPath = 'properties';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
@@ -25,7 +24,7 @@ export class ConfigurationDataService extends IdentifiableDataService<Configurat
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('properties', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -31,18 +31,20 @@ const UUID_ENDPOINT = 'dso';
* {@link setLinkPath} must be called before each request. * {@link setLinkPath} must be called before each request.
*/ */
class DsoByIdOrUUIDDataService extends IdentifiableDataService<DSpaceObject> { class DsoByIdOrUUIDDataService extends IdentifiableDataService<DSpaceObject> {
// interpolate id/uuid as query parameter
constructIdEndpoint = (endpoint: string, resourceID: string): string =>
endpoint.replace(/{\?id}/, `?id=${resourceID}`)
.replace(/{\?uuid}/, `?uuid=${resourceID}`);
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super(
undefined, requestService, rdbService, objectCache, halService, undefined,
// interpolate id/uuid as query parameter
(endpoint: string, resourceID: string): string => {
return endpoint.replace(/{\?id}/, `?id=${resourceID}`)
.replace(/{\?uuid}/, `?uuid=${resourceID}`);
},
);
} }
/** /**

View File

@@ -11,13 +11,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(DSPACE_OBJECT) @dataService(DSPACE_OBJECT)
export class DSpaceObjectDataService extends IdentifiableDataService<DSpaceObject> { export class DSpaceObjectDataService extends IdentifiableDataService<DSpaceObject> {
protected linkPath = 'dso';
// interpolate uuid as query parameter
protected constructIdEndpoint = (endpoint: string, resourceID: string): string => {
return endpoint.replace(/{\?uuid}/, `?uuid=${resourceID}`);
};
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
@@ -25,7 +18,11 @@ export class DSpaceObjectDataService extends IdentifiableDataService<DSpaceObjec
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super( super(
requestService, rdbService, objectCache, halService, 'dso', requestService, rdbService, objectCache, halService, undefined,
// interpolate uuid as query parameter
(endpoint: string, resourceID: string): string => {
return endpoint.replace(/{\?uuid}/, `?uuid=${resourceID}`);
},
); );
} }
} }

View File

@@ -22,8 +22,6 @@ import { FindAllData, FindAllDataImpl } from './base/find-all-data';
*/ */
@Injectable() @Injectable()
export class EntityTypeDataService extends BaseDataService<ItemType> implements FindAllData<ItemType>, SearchData<ItemType> { export class EntityTypeDataService extends BaseDataService<ItemType> implements FindAllData<ItemType>, SearchData<ItemType> {
protected linkPath = 'entitytypes';
private findAllData: FindAllData<ItemType>; private findAllData: FindAllData<ItemType>;
private searchData: SearchDataImpl<ItemType>; private searchData: SearchDataImpl<ItemType>;
@@ -34,10 +32,10 @@ export class EntityTypeDataService extends BaseDataService<ItemType> implements
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected relationshipTypeService: RelationshipTypeDataService, protected relationshipTypeService: RelationshipTypeDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('entitytypes', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
getBrowseEndpoint(options, linkPath?: string): Observable<string> { getBrowseEndpoint(options, linkPath?: string): Observable<string> {

View File

@@ -21,8 +21,6 @@ import { SearchData, SearchDataImpl } from './base/search-data';
*/ */
@Injectable() @Injectable()
export class ExternalSourceDataService extends IdentifiableDataService<ExternalSource> implements SearchData<ExternalSource> { export class ExternalSourceDataService extends IdentifiableDataService<ExternalSource> implements SearchData<ExternalSource> {
protected linkPath = 'externalsources';
private searchData: SearchData<ExternalSource>; private searchData: SearchData<ExternalSource>;
constructor( constructor(
@@ -31,9 +29,9 @@ export class ExternalSourceDataService extends IdentifiableDataService<ExternalS
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('externalsources', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -29,7 +29,6 @@ import { dataService } from '../base/data-service.decorator';
@dataService(AUTHORIZATION) @dataService(AUTHORIZATION)
export class AuthorizationDataService extends BaseDataService<Authorization> implements SearchData<Authorization> { export class AuthorizationDataService extends BaseDataService<Authorization> implements SearchData<Authorization> {
protected linkPath = 'authorizations'; protected linkPath = 'authorizations';
protected searchByObjectPath = 'object'; protected searchByObjectPath = 'object';
private searchData: SearchDataImpl<Authorization>; private searchData: SearchDataImpl<Authorization>;
@@ -41,9 +40,9 @@ export class AuthorizationDataService extends BaseDataService<Authorization> imp
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected siteService: SiteDataService, protected siteService: SiteDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('authorizations', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -22,6 +22,6 @@ export class FeatureDataService extends BaseDataService<Feature> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('features', requestService, rdbService, objectCache, halService);
} }
} }

View File

@@ -52,7 +52,7 @@ export class HrefOnlyDataService implements HALDataService<any> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
this.dataService = new BaseDataService(requestService, rdbService, objectCache, halService); this.dataService = new BaseDataService(undefined, requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -39,7 +39,7 @@ import { StatusCodeOnlyResponseParsingService } from './status-code-only-respons
import { sendRequest } from '../shared/request.operators'; import { sendRequest } from '../shared/request.operators';
import { RestRequest } from './rest-request.model'; import { RestRequest } from './rest-request.model';
import { FindListOptions } from './find-list-options.model'; import { FindListOptions } from './find-list-options.model';
import { IdentifiableDataService } from './base/identifiable-data.service'; import { ConstructIdEndpoint, IdentifiableDataService } from './base/identifiable-data.service';
import { PatchData, PatchDataImpl } from './base/patch-data'; import { PatchData, PatchDataImpl } from './base/patch-data';
import { DeleteData, DeleteDataImpl } from './base/delete-data'; import { DeleteData, DeleteDataImpl } from './base/delete-data';
import { RestRequestMethod } from './rest-request-method'; import { RestRequestMethod } from './rest-request-method';
@@ -58,6 +58,7 @@ export abstract class BaseItemDataService extends IdentifiableDataService<Item>
private deleteData: DeleteData<Item>; private deleteData: DeleteData<Item>;
protected constructor( protected constructor(
protected linkPath,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
@@ -66,12 +67,13 @@ export abstract class BaseItemDataService extends IdentifiableDataService<Item>
protected comparator: DSOChangeAnalyzer<Item>, protected comparator: DSOChangeAnalyzer<Item>,
protected browseService: BrowseService, protected browseService: BrowseService,
protected bundleService: BundleDataService, protected bundleService: BundleDataService,
protected constructIdEndpoint: ConstructIdEndpoint = (endpoint, resourceID) => `${endpoint}/${resourceID}`,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService, undefined, constructIdEndpoint);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.patchData = new PatchDataImpl<Item>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<Item>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**
@@ -386,8 +388,6 @@ export abstract class BaseItemDataService extends IdentifiableDataService<Item>
@Injectable() @Injectable()
@dataService(ITEM) @dataService(ITEM)
export class ItemDataService extends BaseItemDataService { export class ItemDataService extends BaseItemDataService {
protected linkPath = 'items';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
@@ -398,6 +398,6 @@ export class ItemDataService extends BaseItemDataService {
protected browseService: BrowseService, protected browseService: BrowseService,
protected bundleService: BundleDataService, protected bundleService: BundleDataService,
) { ) {
super(requestService, rdbService, objectCache, halService, notificationsService, comparator, browseService, bundleService); super('items', requestService, rdbService, objectCache, halService, notificationsService, comparator, browseService, bundleService);
} }
} }

View File

@@ -23,15 +23,13 @@ import { IdentifiableDataService } from './base/identifiable-data.service';
providedIn: 'root', providedIn: 'root',
}) })
export class ItemRequestDataService extends IdentifiableDataService<ItemRequest> { export class ItemRequestDataService extends IdentifiableDataService<ItemRequest> {
protected linkPath = 'itemrequests';
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('itemrequests', requestService, rdbService, objectCache, halService);
} }
getItemRequestEndpoint(): Observable<string> { getItemRequestEndpoint(): Observable<string> {

View File

@@ -22,8 +22,6 @@ import { CreateDataImpl } from './base/create-data';
* Data service for interacting with Item templates via their Collection * Data service for interacting with Item templates via their Collection
*/ */
class CollectionItemTemplateDataService extends IdentifiableDataService<Item> { class CollectionItemTemplateDataService extends IdentifiableDataService<Item> {
protected linkPath = 'itemtemplates';
private createData: CreateDataImpl<Item>; private createData: CreateDataImpl<Item>;
constructor( constructor(
@@ -34,10 +32,10 @@ class CollectionItemTemplateDataService extends IdentifiableDataService<Item> {
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected collectionService: CollectionDataService, protected collectionService: CollectionDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('itemtemplates', requestService, rdbService, objectCache, halService, undefined);
// We only intend to use createOnEndpoint, so this inner data service feature doesn't need an endpoint at all // We only intend to use createOnEndpoint, so this inner data service feature doesn't need an endpoint at all
this.createData = new CreateDataImpl<Item>(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl<Item>(undefined, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
} }
/** /**
@@ -67,8 +65,6 @@ class CollectionItemTemplateDataService extends IdentifiableDataService<Item> {
*/ */
@Injectable() @Injectable()
export class ItemTemplateDataService extends BaseItemDataService { export class ItemTemplateDataService extends BaseItemDataService {
protected linkPath = 'itemtemplates';
private byCollection: CollectionItemTemplateDataService; private byCollection: CollectionItemTemplateDataService;
constructor( constructor(
@@ -82,7 +78,7 @@ export class ItemTemplateDataService extends BaseItemDataService {
protected bundleService: BundleDataService, protected bundleService: BundleDataService,
protected collectionService: CollectionDataService, protected collectionService: CollectionDataService,
) { ) {
super(requestService, rdbService, objectCache, halService, notificationsService, comparator, browseService, bundleService); super('itemtemplates', requestService, rdbService, objectCache, halService, notificationsService, comparator, browseService, bundleService);
this.byCollection = new CollectionItemTemplateDataService(requestService, rdbService, objectCache, halService, notificationsService, collectionService); this.byCollection = new CollectionItemTemplateDataService(requestService, rdbService, objectCache, halService, notificationsService, collectionService);
} }

View File

@@ -29,8 +29,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(METADATA_FIELD) @dataService(METADATA_FIELD)
export class MetadataFieldDataService extends IdentifiableDataService<MetadataField> implements CreateData<MetadataField>, PutData<MetadataField>, DeleteData<MetadataField>, SearchData<MetadataField> { export class MetadataFieldDataService extends IdentifiableDataService<MetadataField> implements CreateData<MetadataField>, PutData<MetadataField>, DeleteData<MetadataField>, SearchData<MetadataField> {
protected linkPath = 'metadatafields';
private createData: CreateData<MetadataField>; private createData: CreateData<MetadataField>;
private searchData: SearchData<MetadataField>; private searchData: SearchData<MetadataField>;
private putData: PutData<MetadataField>; private putData: PutData<MetadataField>;
@@ -46,12 +44,12 @@ export class MetadataFieldDataService extends IdentifiableDataService<MetadataFi
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('metadatafields', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService, ); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.putData = new PutDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.putData = new PutDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -27,8 +27,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(METADATA_SCHEMA) @dataService(METADATA_SCHEMA)
export class MetadataSchemaDataService extends IdentifiableDataService<MetadataSchema> implements FindAllData<MetadataSchema>, DeleteData<MetadataSchema> { export class MetadataSchemaDataService extends IdentifiableDataService<MetadataSchema> implements FindAllData<MetadataSchema>, DeleteData<MetadataSchema> {
protected linkPath = 'metadataschemas';
private createData: CreateData<MetadataSchema>; private createData: CreateData<MetadataSchema>;
private findAllData: FindAllData<MetadataSchema>; private findAllData: FindAllData<MetadataSchema>;
private putData: PutData<MetadataSchema>; private putData: PutData<MetadataSchema>;
@@ -41,12 +39,12 @@ export class MetadataSchemaDataService extends IdentifiableDataService<MetadataS
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('metadataschemas', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.putData = new PutDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.putData = new PutDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -20,8 +20,6 @@ import { dataService } from '../base/data-service.decorator';
@Injectable() @Injectable()
@dataService(PROCESS) @dataService(PROCESS)
export class ProcessDataService extends IdentifiableDataService<Process> implements FindAllData<Process> { export class ProcessDataService extends IdentifiableDataService<Process> implements FindAllData<Process> {
protected linkPath = 'processes';
private findAllData: FindAllData<Process>; private findAllData: FindAllData<Process>;
constructor( constructor(
@@ -31,9 +29,9 @@ export class ProcessDataService extends IdentifiableDataService<Process> impleme
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected bitstreamDataService: BitstreamDataService, protected bitstreamDataService: BitstreamDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('processes', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -28,8 +28,6 @@ export const METADATA_EXPORT_SCRIPT_NAME = 'metadata-export';
@Injectable() @Injectable()
@dataService(SCRIPT) @dataService(SCRIPT)
export class ScriptDataService extends IdentifiableDataService<Script> implements FindAllData<Script> { export class ScriptDataService extends IdentifiableDataService<Script> implements FindAllData<Script> {
protected linkPath = 'scripts';
private findAllData: FindAllDataImpl<Script>; private findAllData: FindAllDataImpl<Script>;
constructor( constructor(
@@ -38,9 +36,9 @@ export class ScriptDataService extends IdentifiableDataService<Script> implement
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('scripts', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
public invoke(scriptName: string, parameters: ProcessParameter[], files: File[]): Observable<RemoteData<Process>> { public invoke(scriptName: string, parameters: ProcessParameter[], files: File[]): Observable<RemoteData<Process>> {

View File

@@ -75,9 +75,6 @@ const compareItemsByUUID = (itemCheck: Item) =>
@Injectable() @Injectable()
@dataService(RELATIONSHIP) @dataService(RELATIONSHIP)
export class RelationshipDataService extends IdentifiableDataService<Relationship> implements SearchData<Relationship> { export class RelationshipDataService extends IdentifiableDataService<Relationship> implements SearchData<Relationship> {
protected linkPath = 'relationships';
protected responseMsToLive = 15 * 60 * 1000;
private searchData: SearchData<Relationship>; private searchData: SearchData<Relationship>;
private putData: PutData<Relationship>; private putData: PutData<Relationship>;
@@ -90,10 +87,10 @@ export class RelationshipDataService extends IdentifiableDataService<Relationshi
protected appStore: Store<AppState>, protected appStore: Store<AppState>,
@Inject(PAGINATED_RELATIONS_TO_ITEMS_OPERATOR) private paginatedRelationsToItems: (thisId: string) => (source: Observable<RemoteData<PaginatedList<Relationship>>>) => Observable<RemoteData<PaginatedList<Item>>>, @Inject(PAGINATED_RELATIONS_TO_ITEMS_OPERATOR) private paginatedRelationsToItems: (thisId: string) => (source: Observable<RemoteData<PaginatedList<Relationship>>>) => Observable<RemoteData<PaginatedList<Item>>>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('relationships', requestService, rdbService, objectCache, halService, 15 * 60 * 1000);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.putData = new PutDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.putData = new PutDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -33,8 +33,6 @@ const checkSide = (typeRd: RemoteData<ItemType>, label: string): boolean =>
@Injectable() @Injectable()
@dataService(RELATIONSHIP_TYPE) @dataService(RELATIONSHIP_TYPE)
export class RelationshipTypeDataService extends BaseDataService<RelationshipType> { export class RelationshipTypeDataService extends BaseDataService<RelationshipType> {
protected linkPath = 'relationshiptypes';
private searchData: SearchDataImpl<RelationshipType>; private searchData: SearchDataImpl<RelationshipType>;
private findAllData: FindAllDataImpl<RelationshipType>; private findAllData: FindAllDataImpl<RelationshipType>;
@@ -44,10 +42,10 @@ export class RelationshipTypeDataService extends BaseDataService<RelationshipTyp
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('relationshiptypes', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -20,9 +20,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(ROOT) @dataService(ROOT)
export class RootDataService extends BaseDataService<Root> { export class RootDataService extends BaseDataService<Root> {
protected linkPath = '';
protected responseMsToLive = 6 * 60 * 60 * 1000;
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
@@ -30,7 +27,7 @@ export class RootDataService extends BaseDataService<Root> {
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected restService: DspaceRestService, protected restService: DspaceRestService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('', requestService, rdbService, objectCache, halService, 6 * 60 * 60 * 1000);
} }
/** /**

View File

@@ -22,8 +22,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SITE) @dataService(SITE)
export class SiteDataService extends BaseDataService<Site> implements FindAllData<Site> { export class SiteDataService extends BaseDataService<Site> implements FindAllData<Site> {
protected linkPath = 'sites';
private findAllData: FindAllData<Site>; private findAllData: FindAllData<Site>;
constructor( constructor(
@@ -32,9 +30,9 @@ export class SiteDataService extends BaseDataService<Site> implements FindAllDat
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('sites', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -24,7 +24,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(VERSION) @dataService(VERSION)
export class VersionDataService extends IdentifiableDataService<Version> implements PatchData<Version> { export class VersionDataService extends IdentifiableDataService<Version> implements PatchData<Version> {
protected linkPath = 'versions';
private patchData: PatchData<Version>; private patchData: PatchData<Version>;
constructor( constructor(
@@ -34,9 +33,9 @@ export class VersionDataService extends IdentifiableDataService<Version> impleme
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected comparator: DefaultChangeAnalyzer<Version>, protected comparator: DefaultChangeAnalyzer<Version>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('versions', requestService, rdbService, objectCache, halService);
this.patchData = new PatchDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -32,7 +32,6 @@ import { dataService } from './base/data-service.decorator';
@Injectable() @Injectable()
@dataService(VERSION_HISTORY) @dataService(VERSION_HISTORY)
export class VersionHistoryDataService extends IdentifiableDataService<VersionHistory> { export class VersionHistoryDataService extends IdentifiableDataService<VersionHistory> {
protected linkPath = 'versionhistories';
protected versionsEndpoint = 'versions'; protected versionsEndpoint = 'versions';
constructor( constructor(
@@ -42,7 +41,7 @@ export class VersionHistoryDataService extends IdentifiableDataService<VersionHi
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected versionDataService: VersionDataService, protected versionDataService: VersionDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('versionhistories', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -22,6 +22,6 @@ export class WorkflowActionDataService extends BaseDataService<WorkflowAction> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('workflowactions', requestService, rdbService, objectCache, halService);
} }
} }

View File

@@ -41,8 +41,6 @@ const editEPersonSelector = createSelector(ePeopleRegistryStateSelector, (ePeopl
@Injectable() @Injectable()
@dataService(EPERSON) @dataService(EPERSON)
export class EPersonDataService extends IdentifiableDataService<EPerson> implements CreateData<EPerson>, SearchData<EPerson>, PatchData<EPerson>, DeleteData<EPerson> { export class EPersonDataService extends IdentifiableDataService<EPerson> implements CreateData<EPerson>, SearchData<EPerson>, PatchData<EPerson>, DeleteData<EPerson> {
protected linkPath = 'epersons';
protected searchByEmailPath = 'byEmail'; protected searchByEmailPath = 'byEmail';
protected searchByMetadataPath = 'byMetadata'; protected searchByMetadataPath = 'byMetadata';
@@ -60,12 +58,12 @@ export class EPersonDataService extends IdentifiableDataService<EPerson> impleme
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected store: Store<any>, protected store: Store<any>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('epersons', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.patchData = new PatchDataImpl<EPerson>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<EPerson>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -50,8 +50,6 @@ const editGroupSelector = createSelector(groupRegistryStateSelector, (groupRegis
@Injectable() @Injectable()
@dataService(GROUP) @dataService(GROUP)
export class GroupDataService extends IdentifiableDataService<Group> { export class GroupDataService extends IdentifiableDataService<Group> {
protected linkPath = 'metadatafields';
protected browseEndpoint = ''; protected browseEndpoint = '';
public ePersonsEndpoint = 'epersons'; public ePersonsEndpoint = 'epersons';
public subgroupsEndpoint = 'subgroups'; public subgroupsEndpoint = 'subgroups';
@@ -71,12 +69,12 @@ export class GroupDataService extends IdentifiableDataService<Group> {
protected nameService: DSONameService, protected nameService: DSONameService,
protected store: Store<any>, protected store: Store<any>,
) { ) {
super(requestService, rdbService, objectCache, halService); super('groups', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.patchData = new PatchDataImpl<Group>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<Group>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -21,8 +21,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(FEEDBACK) @dataService(FEEDBACK)
export class FeedbackDataService extends IdentifiableDataService<Feedback> implements CreateData<Feedback> { export class FeedbackDataService extends IdentifiableDataService<Feedback> implements CreateData<Feedback> {
protected linkPath = 'feedbacks';
private createData: CreateDataImpl<Feedback>; private createData: CreateDataImpl<Feedback>;
constructor( constructor(
@@ -33,9 +31,9 @@ export class FeedbackDataService extends IdentifiableDataService<Feedback> imple
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('feedbacks', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
} }
/** /**

View File

@@ -23,8 +23,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(ORCID_HISTORY) @dataService(ORCID_HISTORY)
export class OrcidHistoryDataService extends IdentifiableDataService<OrcidHistory> { export class OrcidHistoryDataService extends IdentifiableDataService<OrcidHistory> {
protected linkPath = 'orcidhistories';
protected responseMsToLive = 10 * 1000;
constructor( constructor(
protected requestService: RequestService, protected requestService: RequestService,
@@ -32,7 +30,7 @@ export class OrcidHistoryDataService extends IdentifiableDataService<OrcidHistor
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('orcidhistories', requestService, rdbService, objectCache, halService, 10 * 1000);
} }
sendToORCID(orcidQueue: OrcidQueue): Observable<RemoteData<OrcidHistory>> { sendToORCID(orcidQueue: OrcidQueue): Observable<RemoteData<OrcidHistory>> {

View File

@@ -23,9 +23,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(ORCID_QUEUE) @dataService(ORCID_QUEUE)
export class OrcidQueueDataService extends IdentifiableDataService<OrcidQueue> { export class OrcidQueueDataService extends IdentifiableDataService<OrcidQueue> {
protected linkPath = 'orcidqueues';
protected responseMsToLive = 10 * 1000;
private searchData: SearchData<OrcidQueue>; private searchData: SearchData<OrcidQueue>;
private deleteData: DeleteData<OrcidQueue>; private deleteData: DeleteData<OrcidQueue>;
@@ -36,10 +33,10 @@ export class OrcidQueueDataService extends IdentifiableDataService<OrcidQueue> {
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('orcidqueues', requestService, rdbService, objectCache, halService, 10 * 1000);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -40,9 +40,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(RESEARCHER_PROFILE) @dataService(RESEARCHER_PROFILE)
export class ResearcherProfileDataService extends IdentifiableDataService<ResearcherProfile> implements CreateData<ResearcherProfile>, SearchData<ResearcherProfile>, PatchData<ResearcherProfile>, DeleteData<ResearcherProfile> { export class ResearcherProfileDataService extends IdentifiableDataService<ResearcherProfile> implements CreateData<ResearcherProfile>, SearchData<ResearcherProfile>, PatchData<ResearcherProfile>, DeleteData<ResearcherProfile> {
protected linkPath = 'profiles';
protected responseMsToLive = 10 * 1000;
private createData: CreateDataImpl<ResearcherProfile>; private createData: CreateDataImpl<ResearcherProfile>;
private searchData: SearchDataImpl<ResearcherProfile>; private searchData: SearchDataImpl<ResearcherProfile>;
private patchData: PatchDataImpl<ResearcherProfile>; private patchData: PatchDataImpl<ResearcherProfile>;
@@ -58,12 +55,12 @@ export class ResearcherProfileDataService extends IdentifiableDataService<Resear
protected comparator: DefaultChangeAnalyzer<ResearcherProfile>, protected comparator: DefaultChangeAnalyzer<ResearcherProfile>,
protected itemService: ItemDataService, protected itemService: ItemDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('profiles', requestService, rdbService, objectCache, halService, 10 * 1000);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.patchData = new PatchDataImpl<ResearcherProfile>(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl<ResearcherProfile>(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -40,8 +40,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(RESOURCE_POLICY) @dataService(RESOURCE_POLICY)
export class ResourcePolicyDataService extends IdentifiableDataService<ResourcePolicy> { export class ResourcePolicyDataService extends IdentifiableDataService<ResourcePolicy> {
protected linkPath = 'resourcepolicies';
protected searchByEPersonMethod = 'eperson'; protected searchByEPersonMethod = 'eperson';
protected searchByGroupMethod = 'group'; protected searchByGroupMethod = 'group';
protected searchByResourceMethod = 'resource'; protected searchByResourceMethod = 'resource';
@@ -61,12 +59,12 @@ export class ResourcePolicyDataService extends IdentifiableDataService<ResourceP
protected ePersonService: EPersonDataService, protected ePersonService: EPersonDataService,
protected groupService: GroupDataService, protected groupService: GroupDataService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('resourcepolicies', requestService, rdbService, objectCache, halService);
this.createData = new CreateDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, notificationsService); this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.patchData = new PatchDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, comparator); this.patchData = new PatchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, comparator, this.responseMsToLive, this.constructIdEndpoint);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -42,10 +42,8 @@ import { BaseDataService } from '../../data/base/base-data.service';
* Therefore, equest/response handling methods won't work even though they're defined * Therefore, equest/response handling methods won't work even though they're defined
*/ */
class SearchDataService extends BaseDataService<any> { class SearchDataService extends BaseDataService<any> {
protected linkPath = 'discover';
constructor() { constructor() {
super(undefined, undefined, undefined, undefined); super('discover', undefined, undefined, undefined, undefined);
} }
/** /**

View File

@@ -22,8 +22,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(USAGE_REPORT) @dataService(USAGE_REPORT)
export class UsageReportDataService extends IdentifiableDataService<UsageReport> implements SearchData<UsageReport> { export class UsageReportDataService extends IdentifiableDataService<UsageReport> implements SearchData<UsageReport> {
protected linkPath = 'usagereports';
private searchData: SearchDataImpl<UsageReport>; private searchData: SearchDataImpl<UsageReport>;
constructor( constructor(
@@ -32,9 +30,9 @@ export class UsageReportDataService extends IdentifiableDataService<UsageReport>
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('usagereports', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
getStatistic(scope: string, type: string): Observable<UsageReport> { getStatistic(scope: string, type: string): Observable<UsageReport> {

View File

@@ -17,6 +17,7 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SUBMISSION_CC_LICENSE) @dataService(SUBMISSION_CC_LICENSE)
export class SubmissionCcLicenseDataService extends BaseDataService<SubmissionCcLicence> implements FindAllData<SubmissionCcLicence> { export class SubmissionCcLicenseDataService extends BaseDataService<SubmissionCcLicence> implements FindAllData<SubmissionCcLicence> {
protected linkPath = 'submissioncclicenses'; protected linkPath = 'submissioncclicenses';
constructor( constructor(
@@ -25,7 +26,7 @@ export class SubmissionCcLicenseDataService extends BaseDataService<SubmissionCc
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('submissioncclicenses', requestService, rdbService, objectCache, halService);
} }
/** /**

View File

@@ -20,8 +20,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(SUBMISSION_CC_LICENSE_URL) @dataService(SUBMISSION_CC_LICENSE_URL)
export class SubmissionCcLicenseUrlDataService extends BaseDataService<SubmissionCcLicenceUrl> implements SearchData<SubmissionCcLicenceUrl> { export class SubmissionCcLicenseUrlDataService extends BaseDataService<SubmissionCcLicenceUrl> implements SearchData<SubmissionCcLicenceUrl> {
protected linkPath = 'submissioncclicenseUrls-search';
private searchData: SearchData<SubmissionCcLicenceUrl>; private searchData: SearchData<SubmissionCcLicenceUrl>;
constructor( constructor(
@@ -30,9 +28,9 @@ export class SubmissionCcLicenseUrlDataService extends BaseDataService<Submissio
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('submissioncclicenseUrls-search', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, (href, searchMethod) => `${href}/${searchMethod}`); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive, (href, searchMethod) => `${href}/${searchMethod}`);
} }
/** /**

View File

@@ -28,8 +28,6 @@ import { dataService } from '../../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(VOCABULARY_ENTRY_DETAIL) @dataService(VOCABULARY_ENTRY_DETAIL)
export class VocabularyEntryDetailsDataService extends IdentifiableDataService<VocabularyEntryDetail> implements FindAllData<VocabularyEntryDetail>, SearchData<VocabularyEntryDetail> { export class VocabularyEntryDetailsDataService extends IdentifiableDataService<VocabularyEntryDetail> implements FindAllData<VocabularyEntryDetail>, SearchData<VocabularyEntryDetail> {
protected linkPath = 'vocabularyEntryDetails';
private findAllData: FindAllData<VocabularyEntryDetail>; private findAllData: FindAllData<VocabularyEntryDetail>;
private searchData: SearchData<VocabularyEntryDetail>; private searchData: SearchData<VocabularyEntryDetail>;
@@ -39,10 +37,10 @@ export class VocabularyEntryDetailsDataService extends IdentifiableDataService<V
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('vocabularyEntryDetails', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -27,8 +27,6 @@ import { dataService } from '../../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(VOCABULARY) @dataService(VOCABULARY)
export class VocabularyDataService extends IdentifiableDataService<Vocabulary> implements FindAllData<Vocabulary> { export class VocabularyDataService extends IdentifiableDataService<Vocabulary> implements FindAllData<Vocabulary> {
protected linkPath = 'vocabularies';
private findAllData: FindAllData<Vocabulary>; private findAllData: FindAllData<Vocabulary>;
constructor( constructor(
@@ -37,9 +35,9 @@ export class VocabularyDataService extends IdentifiableDataService<Vocabulary> i
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('vocabularies', requestService, rdbService, objectCache, halService);
this.findAllData = new FindAllDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**

View File

@@ -29,9 +29,8 @@ import { dataService } from '../data/base/data-service.decorator';
@dataService(WorkflowItem.type) @dataService(WorkflowItem.type)
export class WorkflowItemDataService extends IdentifiableDataService<WorkflowItem> implements SearchData<WorkflowItem>, DeleteData<WorkflowItem> { export class WorkflowItemDataService extends IdentifiableDataService<WorkflowItem> implements SearchData<WorkflowItem>, DeleteData<WorkflowItem> {
protected linkPath = 'workflowitems'; protected linkPath = 'workflowitems';
protected responseMsToLive = 10 * 1000;
protected searchByItemLinkPath = 'item'; protected searchByItemLinkPath = 'item';
protected responseMsToLive = 10 * 1000;
private searchData: SearchDataImpl<WorkflowItem>; private searchData: SearchDataImpl<WorkflowItem>;
private deleteData: DeleteDataImpl<WorkflowItem>; private deleteData: DeleteDataImpl<WorkflowItem>;
@@ -43,10 +42,10 @@ export class WorkflowItemDataService extends IdentifiableDataService<WorkflowIte
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('workspaceitems', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -23,8 +23,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(WorkspaceItem.type) @dataService(WorkspaceItem.type)
export class WorkspaceitemDataService extends IdentifiableDataService<WorkspaceItem> implements SearchData<WorkspaceItem>, DeleteData<WorkspaceItem> { export class WorkspaceitemDataService extends IdentifiableDataService<WorkspaceItem> implements SearchData<WorkspaceItem>, DeleteData<WorkspaceItem> {
protected linkPath = 'workspaceitems';
protected searchByItemLinkPath = 'item'; protected searchByItemLinkPath = 'item';
private searchData: SearchDataImpl<WorkspaceItem>; private searchData: SearchDataImpl<WorkspaceItem>;
@@ -37,10 +35,10 @@ export class WorkspaceitemDataService extends IdentifiableDataService<WorkspaceI
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('workspaceitems', requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService); this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
this.deleteData = new DeleteDataImpl(this.linkPath, this.responseMsToLive, this.constructIdEndpoint, requestService, rdbService, objectCache, halService, notificationsService); this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint);
} }
/** /**

View File

@@ -22,8 +22,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(CLAIMED_TASK) @dataService(CLAIMED_TASK)
export class ClaimedTaskDataService extends TasksService<ClaimedTask> { export class ClaimedTaskDataService extends TasksService<ClaimedTask> {
protected linkPath = 'claimedtasks';
protected responseMsToLive = 1000;
/** /**
* Initialize instance variables * Initialize instance variables
@@ -39,7 +37,7 @@ export class ClaimedTaskDataService extends TasksService<ClaimedTask> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('claimedtasks', requestService, rdbService, objectCache, halService, 1000);
} }
/** /**

View File

@@ -20,9 +20,6 @@ import { dataService } from '../data/base/data-service.decorator';
@Injectable() @Injectable()
@dataService(POOL_TASK) @dataService(POOL_TASK)
export class PoolTaskDataService extends TasksService<PoolTask> { export class PoolTaskDataService extends TasksService<PoolTask> {
protected linkPath = 'pooltasks';
protected responseMsToLive = 1000;
/** /**
* Initialize instance variables * Initialize instance variables
* *
@@ -37,7 +34,7 @@ export class PoolTaskDataService extends TasksService<PoolTask> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('pooltasks', requestService, rdbService, objectCache, halService, 1000);
} }
/** /**

View File

@@ -35,7 +35,7 @@ class TestService extends TasksService<TestTask> {
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
) { ) {
super(requestService, rdbService, objectCache, halService); super('testtasks', requestService, rdbService, objectCache, halService);
} }
} }

View File

@@ -26,14 +26,16 @@ export abstract class TasksService<T extends CacheableObject> extends Identifiab
private searchData: SearchData<T>; private searchData: SearchData<T>;
protected constructor( protected constructor(
protected linkPath: string,
protected requestService: RequestService, protected requestService: RequestService,
protected rdbService: RemoteDataBuildService, protected rdbService: RemoteDataBuildService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected halService: HALEndpointService, protected halService: HALEndpointService,
protected responseMsToLive?: number,
) { ) {
super(requestService, rdbService, objectCache, halService); super(linkPath, requestService, rdbService, objectCache, halService);
this.searchData = new SearchDataImpl<T>(this.linkPath, this.responseMsToLive, requestService, rdbService, objectCache, halService, ); this.searchData = new SearchDataImpl<T>(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive);
} }
/** /**