import { AuthUserDto, SearchConfigResponseDto, SearchDto, SearchExploreResponseDto, SearchResponseDto, SearchService, } from '@app/domain'; import { Controller, Get, Query, ValidationPipe } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { GetAuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; @ApiTags('Search') @Controller('search') @Authenticated() export class SearchController { constructor(private service: SearchService) {} @Get() search( @GetAuthUser() authUser: AuthUserDto, @Query(new ValidationPipe({ transform: true })) dto: SearchDto, ): Promise { return this.service.search(authUser, dto); } @Get('config') getSearchConfig(): SearchConfigResponseDto { return this.service.getConfig(); } @Get('explore') getExploreData(@GetAuthUser() authUser: AuthUserDto): Promise { return this.service.getExploreData(authUser) as Promise; } }