Fixed insufficient caching problem
This commit is contained in:
parent
3a6cace3ee
commit
a5b175b292
@ -42,16 +42,17 @@ export class PageInterceptor implements NestInterceptor {
|
|||||||
async intercept(context: ExecutionContext, next: CallHandler<any>): Promise<Observable<PageDto>> {
|
async intercept(context: ExecutionContext, next: CallHandler<any>): Promise<Observable<PageDto>> {
|
||||||
const query = context.switchToHttp().getRequest().query;
|
const query = context.switchToHttp().getRequest().query;
|
||||||
|
|
||||||
// const offset = !query.offset ? 0 : query.offset;
|
|
||||||
const offset = query.offset;
|
const offset = query.offset;
|
||||||
// const limit = !query.limit ? 10 : query.limit;
|
|
||||||
const limit = query.limit;
|
const limit = query.limit;
|
||||||
// const order = !query.order ? Order.DESC : query.order;
|
|
||||||
const order = query.order;
|
const order = query.order;
|
||||||
|
const query_string = query.query;
|
||||||
|
|
||||||
const prev_page = await this.cacheManager.get('prev_page');
|
const prev_page = await this.cacheManager.get('prev_page');
|
||||||
if (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(
|
return next.handle().pipe(
|
||||||
@ -71,7 +72,7 @@ export class PageInterceptor implements NestInterceptor {
|
|||||||
|
|
||||||
// Cache and return the page
|
// Cache and return the page
|
||||||
const page: PageDto = new PageDto(data, meta);
|
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;
|
return page;
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user