diff --git a/src/app/core/auth/auth-request.service.ts b/src/app/core/auth/auth-request.service.ts index 713eb8cae8dfaa27dc18c53e0efb344127c44876..4c8ce273bd94f3768e4fcd9a228951ba22304430 100644 --- a/src/app/core/auth/auth-request.service.ts +++ b/src/app/core/auth/auth-request.service.ts @@ -44,6 +44,7 @@ export class AuthRequestService { map((endpointURL) => this.getEndpointByMethod(endpointURL, method)), distinctUntilChanged(), map((endpointURL: string) => new AuthPostRequest(this.requestService.generateRequestId(), endpointURL, body, options)), + map ((request: PostRequest) => request.responseMsToLive = 0), tap((request: PostRequest) => this.requestService.configure(request)), mergeMap((request: PostRequest) => this.fetchRequest(request)), distinctUntilChanged()); @@ -55,6 +56,7 @@ export class AuthRequestService { map((endpointURL) => this.getEndpointByMethod(endpointURL, method)), distinctUntilChanged(), map((endpointURL: string) => new AuthGetRequest(this.requestService.generateRequestId(), endpointURL, options)), + map ((request: GetRequest) => request.responseMsToLive = 0), tap((request: GetRequest) => this.requestService.configure(request)), mergeMap((request: GetRequest) => this.fetchRequest(request)), distinctUntilChanged()); diff --git a/src/app/core/data/data.service.ts b/src/app/core/data/data.service.ts index 1ed3c7a4a136de69878b3fcb382712844e3c8343..ae7fccc91b987812485e9f703ba20d3abb983841 100644 --- a/src/app/core/data/data.service.ts +++ b/src/app/core/data/data.service.ts @@ -49,6 +49,7 @@ export abstract class DataService<T extends CacheableObject> { protected abstract notificationsService: NotificationsService; protected abstract http: HttpClient; protected abstract comparator: ChangeAnalyzer<T>; + protected resetMsToLive = false; public abstract getBrowseEndpoint(options: FindAllOptions, linkPath?: string): Observable<string> @@ -130,6 +131,9 @@ export abstract class DataService<T extends CacheableObject> { first((href: string) => hasValue(href))) .subscribe((href: string) => { const request = new FindAllRequest(this.requestService.generateRequestId(), href, options); + if (this.resetMsToLive) { + request.responseMsToLive = 0; + } this.requestService.configure(request); }); @@ -153,6 +157,9 @@ export abstract class DataService<T extends CacheableObject> { find((href: string) => hasValue(href))) .subscribe((href: string) => { const request = new FindByIDRequest(this.requestService.generateRequestId(), href, id); + if (this.resetMsToLive) { + request.responseMsToLive = 0; + } this.requestService.configure(request); }); @@ -160,7 +167,11 @@ export abstract class DataService<T extends CacheableObject> { } findByHref(href: string, options?: HttpOptions): Observable<RemoteData<T>> { - this.requestService.configure(new GetRequest(this.requestService.generateRequestId(), href, null, options)); + const request = new GetRequest(this.requestService.generateRequestId(), href, null, options); + if (this.resetMsToLive) { + request.responseMsToLive = 0; + } + this.requestService.configure(request); return this.rdbService.buildSingle<T>(href); } @@ -191,6 +202,7 @@ export abstract class DataService<T extends CacheableObject> { first((href: string) => hasValue(href))) .subscribe((href: string) => { const request = new FindAllRequest(this.requestService.generateRequestId(), href, options); + request.responseMsToLive = 0; this.requestService.configure(request); }); diff --git a/src/app/core/submission/submission-rest.service.ts b/src/app/core/submission/submission-rest.service.ts index 9df4405c07a6fceaf6f37ca16578f6cf86c86d3a..fb15975caa8ed17045f60cdaeb4ccecd20bf52ea 100644 --- a/src/app/core/submission/submission-rest.service.ts +++ b/src/app/core/submission/submission-rest.service.ts @@ -6,7 +6,7 @@ import { distinctUntilChanged, filter, flatMap, map, mergeMap, tap } from 'rxjs/ import { RequestService } from '../data/request.service'; import { isNotEmpty } from '../../shared/empty.util'; import { - DeleteRequest, + DeleteRequest, GetRequest, PostRequest, RestRequest, SubmissionDeleteRequest, @@ -109,6 +109,7 @@ export class SubmissionRestService { filter((href: string) => isNotEmpty(href)), distinctUntilChanged(), map((endpointURL: string) => new SubmissionRequest(requestId, endpointURL)), + map ((request: RestRequest) => request.responseMsToLive = 0), tap((request: RestRequest) => this.requestService.configure(request)), flatMap(() => this.fetchRequest(requestId)), distinctUntilChanged()); diff --git a/src/app/core/submission/workflowitem-data.service.ts b/src/app/core/submission/workflowitem-data.service.ts index 6877c3965c668c4e3d15bfeca645189c09b5c9bb..dca10d2b30f46a807f33fed316bd7d1169d31ff8 100644 --- a/src/app/core/submission/workflowitem-data.service.ts +++ b/src/app/core/submission/workflowitem-data.service.ts @@ -20,6 +20,7 @@ import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service'; @Injectable() export class WorkflowItemDataService extends DataService<WorkflowItem> { protected linkPath = 'workflowitems'; + protected resetMsToLive = true; constructor( protected comparator: DSOChangeAnalyzer<WorkflowItem>, diff --git a/src/app/core/submission/workspaceitem-data.service.ts b/src/app/core/submission/workspaceitem-data.service.ts index 59f1e78e06a2dc26861c920cad01b24f9b9ea027..c2b6ab5816289a1aa1c6f8339c65fa01758c2830 100644 --- a/src/app/core/submission/workspaceitem-data.service.ts +++ b/src/app/core/submission/workspaceitem-data.service.ts @@ -20,6 +20,7 @@ import { WorkspaceItem } from './models/workspaceitem.model'; @Injectable() export class WorkspaceitemDataService extends DataService<WorkspaceItem> { protected linkPath = 'workspaceitems'; + protected resetMsToLive = true; constructor( protected comparator: DSOChangeAnalyzer<WorkspaceItem>, diff --git a/src/app/core/tasks/claimed-task-data.service.ts b/src/app/core/tasks/claimed-task-data.service.ts index a2835dbd1e1167ea06d7da31673ce06ecdff037f..aa85b3e8b5f69f7d8eeace057211453819f970de 100644 --- a/src/app/core/tasks/claimed-task-data.service.ts +++ b/src/app/core/tasks/claimed-task-data.service.ts @@ -22,6 +22,8 @@ import { ProcessTaskResponse } from './models/process-task-response'; @Injectable() export class ClaimedTaskDataService extends TasksService<ClaimedTask> { + protected resetMsToLive = true; + /** * The endpoint link name */ diff --git a/src/app/core/tasks/pool-task-data.service.ts b/src/app/core/tasks/pool-task-data.service.ts index c031451525c0ad6e924505d3227c83a2f76db88b..8a12af0b680bccc2c3e753646995d9d19fb7acda 100644 --- a/src/app/core/tasks/pool-task-data.service.ts +++ b/src/app/core/tasks/pool-task-data.service.ts @@ -27,6 +27,8 @@ export class PoolTaskDataService extends TasksService<PoolTask> { */ protected linkPath = 'pooltasks'; + protected resetMsToLive = true; + /** * Initialize instance variables *