Added forceBypassCache property to request model.

This commit is contained in:
Michael W Spalti
2019-10-10 16:25:00 -07:00
parent 03a91adfab
commit a7f48865ea
3 changed files with 5 additions and 2 deletions

View File

@@ -23,6 +23,7 @@ import { TaskResponseParsingService } from '../tasks/task-response-parsing.servi
export abstract class RestRequest { export abstract class RestRequest {
public responseMsToLive = 10 * 1000; public responseMsToLive = 10 * 1000;
public forceBypassCache = false;
constructor( constructor(
public uuid: string, public uuid: string,
public href: string, public href: string,
@@ -281,6 +282,7 @@ export class UpdateMetadataFieldRequest extends PutRequest {
* Class representing a submission HTTP GET request object * Class representing a submission HTTP GET request object
*/ */
export class SubmissionRequest extends GetRequest { export class SubmissionRequest extends GetRequest {
forceBypassCache = true;
constructor(uuid: string, href: string) { constructor(uuid: string, href: string) {
super(uuid, href); super(uuid, href);
} }

View File

@@ -148,7 +148,7 @@ export class RequestService {
*/ */
configure<T extends CacheableObject>(request: RestRequest): void { configure<T extends CacheableObject>(request: RestRequest): void {
const isGetRequest = request.method === RestRequestMethod.GET; const isGetRequest = request.method === RestRequestMethod.GET;
if (!isGetRequest || !this.isCachedOrPending(request)) { if (!isGetRequest || request.forceBypassCache || !this.isCachedOrPending(request)) {
this.dispatchRequest(request); this.dispatchRequest(request);
if (isGetRequest) { if (isGetRequest) {
this.trackRequestsOnTheirWayToTheStore(request); this.trackRequestsOnTheirWayToTheStore(request);

View File

@@ -60,7 +60,8 @@ describe('SubmissionRestService test suite', () => {
it('should configure a new SubmissionRequest', () => { it('should configure a new SubmissionRequest', () => {
const expected = new SubmissionRequest(requestService.generateRequestId(), resourceHref); const expected = new SubmissionRequest(requestService.generateRequestId(), resourceHref);
// set cache time to zero // set cache time to zero
expected.responseMsToLive = 10 * 1000; expected.responseMsToLive = 0;
expected.forceBypassCache = true;
scheduler.schedule(() => service.getDataById(resourceEndpoint, resourceScope).subscribe()); scheduler.schedule(() => service.getDataById(resourceEndpoint, resourceScope).subscribe());
scheduler.flush(); scheduler.flush();