1- import { Controller , Post } from '@nestjs/common' ;
1+ import { Controller , Post , UseInterceptors } from '@nestjs/common' ;
22import { ApiTags } from '@nestjs/swagger' ;
33import { ApiSkillBody } from 'src/api/common/decorators/api-skill-body.decorator' ;
44import { SkillExtra } from 'src/api/common/decorators/skill-extra.decorator' ;
55import { ResponseDTO } from 'src/api/common/dtos/response.dto' ;
6+ import { Cacheable } from 'src/cache/decorators/cache-key.decorator' ;
7+ import { RedisInterceptor } from 'src/cache/interceptors/redis.interceptor' ;
68import { User } from '../../../type-orm/entities/users/users.entity' ;
79import { CurrentUser } from './decorators/current-user.decorator' ;
810import { ListCollegesRequestDto } from './dtos/requests/list-college-request.dto' ;
@@ -11,6 +13,7 @@ import { UpsertDepartmentRequestDto } from './dtos/requests/upsert-department-re
1113import { UsersService } from './users.service' ;
1214
1315@ApiTags ( 'users' )
16+ @UseInterceptors ( RedisInterceptor )
1417@Controller ( 'users' )
1518export class UsersController {
1619 constructor ( private readonly usersService : UsersService ) { }
@@ -22,13 +25,21 @@ export class UsersController {
2225 }
2326
2427 @Post ( 'campuses/list' )
28+ @Cacheable ( {
29+ key : 'users-campuses-list' ,
30+ ttl : 60 * 60 * 24 ,
31+ } )
2532 async listCampuses ( ) : Promise < ResponseDTO > {
2633 const template = await this . usersService . campusesListCard ( ) ;
2734 return new ResponseDTO ( template ) ;
2835 }
2936
3037 @Post ( 'colleges/list' )
3138 @ApiSkillBody ( ListCollegesRequestDto )
39+ @Cacheable ( {
40+ key : 'users-colleges-list' ,
41+ ttl : 60 * 60 * 24 ,
42+ } )
3243 async listColleges (
3344 @SkillExtra ( ListCollegesRequestDto ) extra : ListCollegesRequestDto ,
3445 ) : Promise < ResponseDTO > {
@@ -38,6 +49,10 @@ export class UsersController {
3849
3950 @Post ( 'departments/list' )
4051 @ApiSkillBody ( ListDepartmentsRequestDto )
52+ @Cacheable ( {
53+ key : 'users-departments-list' ,
54+ ttl : 60 * 60 * 24 ,
55+ } )
4156 async listDepartments (
4257 @SkillExtra ( ListDepartmentsRequestDto ) extra : ListDepartmentsRequestDto ,
4358 ) : Promise < ResponseDTO > {
0 commit comments