From b308df201d9b09d3516dd6eb913372acb34d8dc7 Mon Sep 17 00:00:00 2001 From: Art Lowel Date: Fri, 28 Sep 2018 16:11:22 +0200 Subject: [PATCH] add responseMsToLive to requests --- config/environment.default.js | 5 ++++- src/app/core/data/base-response-parsing.service.ts | 2 +- src/app/core/data/request.effects.ts | 2 +- src/app/core/data/request.models.ts | 8 +++++--- src/config/cache-config.interface.ts | 5 ++++- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/config/environment.default.js b/config/environment.default.js index a6ef738f41..75be454c88 100644 --- a/config/environment.default.js +++ b/config/environment.default.js @@ -18,7 +18,10 @@ module.exports = { // Caching settings cache: { // NOTE: how long should objects be cached for by default - msToLive: 15 * 60 * 1000, // 15 minutes + msToLive: { + default: 15 * 60 * 1000, // 15 minutes + exportToZip: 5 * 1000 // 5 seconds + }, // msToLive: 1000, // 15 minutes control: 'max-age=60' // revalidate browser }, diff --git a/src/app/core/data/base-response-parsing.service.ts b/src/app/core/data/base-response-parsing.service.ts index fdf5b4eb97..563b965cb1 100644 --- a/src/app/core/data/base-response-parsing.service.ts +++ b/src/app/core/data/base-response-parsing.service.ts @@ -126,7 +126,7 @@ export abstract class BaseResponseParsingService { if (hasNoValue(co) || hasNoValue(co.self)) { throw new Error('The server returned an invalid object'); } - this.objectCache.add(co, this.EnvConfig.cache.msToLive, requestHref); + this.objectCache.add(co, this.EnvConfig.cache.msToLive.default, requestHref); } processPageInfo(payload: any): PageInfo { diff --git a/src/app/core/data/request.effects.ts b/src/app/core/data/request.effects.ts index 5fadd316f4..b7cd685690 100644 --- a/src/app/core/data/request.effects.ts +++ b/src/app/core/data/request.effects.ts @@ -23,7 +23,7 @@ import { catchError, flatMap, map, take, tap } from 'rxjs/operators'; export const addToResponseCacheAndCompleteAction = (request: RestRequest, responseCache: ResponseCacheService, envConfig: GlobalConfig) => (source: Observable): Observable => source.pipe( - tap((response: RestResponse) => responseCache.add(request.href, response, envConfig.cache.msToLive)), + tap((response: RestResponse) => responseCache.add(request.href, response, request.responseMsToLive ? request.responseMsToLive : envConfig.cache.msToLive.default)), map((response: RestResponse) => new RequestCompleteAction(request.uuid)) ); diff --git a/src/app/core/data/request.models.ts b/src/app/core/data/request.models.ts index b87f9cefc8..da2668fbbd 100644 --- a/src/app/core/data/request.models.ts +++ b/src/app/core/data/request.models.ts @@ -41,7 +41,8 @@ export abstract class RestRequest { public href: string, public method: RestRequestMethod = RestRequestMethod.Get, public body?: any, - public options?: HttpOptions + public options?: HttpOptions, + public responseMsToLive?: number ) { } @@ -55,9 +56,10 @@ export class GetRequest extends RestRequest { public uuid: string, public href: string, public body?: any, - public options?: HttpOptions + public options?: HttpOptions, + public responseMsToLive?: number ) { - super(uuid, href, RestRequestMethod.Get, body) + super(uuid, href, RestRequestMethod.Get, body, options, responseMsToLive) } } diff --git a/src/config/cache-config.interface.ts b/src/config/cache-config.interface.ts index f8a2c88640..2ca54e1401 100644 --- a/src/config/cache-config.interface.ts +++ b/src/config/cache-config.interface.ts @@ -1,6 +1,9 @@ import { Config } from './config.interface'; export interface CacheConfig extends Config { - msToLive: number, + msToLive: { + default: number; + exportToZip: number; + }, control: string }