Fixed insufficient caching problem

This commit is contained in:
danny-mhlv 2022-10-12 13:47:52 +03:00
parent 3a6cace3ee
commit a5b175b292

View File

@ -42,16 +42,17 @@ export class PageInterceptor implements NestInterceptor {
async intercept(context: ExecutionContext, next: CallHandler<any>): Promise<Observable<PageDto>> {
const query = context.switchToHttp().getRequest().query;
// const offset = !query.offset ? 0 : query.offset;
const offset = query.offset;
// const limit = !query.limit ? 10 : query.limit;
const limit = query.limit;
// const order = !query.order ? Order.DESC : query.order;
const order = query.order;
const query_string = query.query;
const prev_page = await this.cacheManager.get('prev_page');
if (prev_page) {
if (offset == prev_page[1] && limit == prev_page[2] && order == prev_page[3]) return of(prev_page[0]);
if (offset == prev_page[1] &&
limit == prev_page[2] &&
order == prev_page[3] &&
query_string === prev_page[4]) return of(prev_page[0]);
}
return next.handle().pipe(
@ -71,7 +72,7 @@ export class PageInterceptor implements NestInterceptor {
// Cache and return the page
const page: PageDto = new PageDto(data, meta);
await this.cacheManager.set('prev_page', [page, offset, limit, order]);
await this.cacheManager.set('prev_page', [page, offset, limit, order, query_string]);
return page;
})
);