From a7f48865ea9ea440543b110bd1629900f489a7ee Mon Sep 17 00:00:00 2001
From: Michael W Spalti <mspalti@gmail.com>
Date: Thu, 10 Oct 2019 16:25:00 -0700
Subject: [PATCH] Added forceBypassCache property to request model.

---
 src/app/core/data/request.models.ts                     | 2 ++
 src/app/core/data/request.service.ts                    | 2 +-
 src/app/core/submission/submission-rest.service.spec.ts | 3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/app/core/data/request.models.ts b/src/app/core/data/request.models.ts
index 647f3a9b13..5d14925929 100644
--- a/src/app/core/data/request.models.ts
+++ b/src/app/core/data/request.models.ts
@@ -23,6 +23,7 @@ import { TaskResponseParsingService } from '../tasks/task-response-parsing.servi
 
 export abstract class RestRequest {
   public responseMsToLive = 10 * 1000;
+  public forceBypassCache = false;
   constructor(
     public uuid: string,
     public href: string,
@@ -281,6 +282,7 @@ export class UpdateMetadataFieldRequest extends PutRequest {
  * Class representing a submission HTTP GET request object
  */
 export class SubmissionRequest extends GetRequest {
+  forceBypassCache = true;
   constructor(uuid: string, href: string) {
     super(uuid, href);
   }
diff --git a/src/app/core/data/request.service.ts b/src/app/core/data/request.service.ts
index 17aab032e3..bd65163892 100644
--- a/src/app/core/data/request.service.ts
+++ b/src/app/core/data/request.service.ts
@@ -148,7 +148,7 @@ export class RequestService {
    */
   configure<T extends CacheableObject>(request: RestRequest): void {
     const isGetRequest = request.method === RestRequestMethod.GET;
-    if (!isGetRequest || !this.isCachedOrPending(request)) {
+    if (!isGetRequest || request.forceBypassCache || !this.isCachedOrPending(request)) {
       this.dispatchRequest(request);
       if (isGetRequest) {
         this.trackRequestsOnTheirWayToTheStore(request);
diff --git a/src/app/core/submission/submission-rest.service.spec.ts b/src/app/core/submission/submission-rest.service.spec.ts
index e6cf3cb6b0..30fe9f9163 100644
--- a/src/app/core/submission/submission-rest.service.spec.ts
+++ b/src/app/core/submission/submission-rest.service.spec.ts
@@ -60,7 +60,8 @@ describe('SubmissionRestService test suite', () => {
     it('should configure a new SubmissionRequest', () => {
       const expected = new SubmissionRequest(requestService.generateRequestId(), resourceHref);
       // set cache time to zero
-      expected.responseMsToLive = 10 * 1000;
+      expected.responseMsToLive = 0;
+      expected.forceBypassCache = true;
       scheduler.schedule(() => service.getDataById(resourceEndpoint, resourceScope).subscribe());
       scheduler.flush();
 
-- 
GitLab