Commit b5ee99bd authored by Diego Iván's avatar Diego Iván
Browse files

agregando endpoint para actualizar y obtener categorias de usuario

parent 6fc657cb
Loading
Loading
Loading
Loading
+37 −1
Original line number Diff line number Diff line
import { Controller } from '@nestjs/common';
import { Body, Controller, Get, Param, Patch, Req, UseGuards } from '@nestjs/common';
import { UserService } from './user.service';
import { UpdatePreferedCategoriesDto } from './dto/update-preferedCategories.dto';
import { CustomUserRequest } from 'src/auth/user/interface/customUserReq';
import { ApiBearerAuth, ApiBody, ApiParam, ApiTags } from '@nestjs/swagger';
import { AuthUserGuard } from 'src/auth/user/authUser.guard';
import { LANGUAGES } from 'src/shared/enum/languages.enum';

@Controller('user')
@ApiTags('User')
export class UserController {
  constructor(private readonly userService: UserService) {}

  @Patch('update-prefered-categories')
  @ApiBearerAuth('jwt')
  @ApiBody({ type: UpdatePreferedCategoriesDto })
  @UseGuards(AuthUserGuard)
  async updatePreferedCategories(
    @Body() updatePreferedCategoriesDto: UpdatePreferedCategoriesDto,
    @Req() req: CustomUserRequest,
  ) {
    try {
      const { email } = req.user;
      await this.userService.updatePreferedCategories(email, updatePreferedCategoriesDto.idCategories);
      return { message: 'Prefered categories updated successfully' };
    } catch (error) {
      throw error;
    }
  }

  @Get('prefered-categories:lang')
  @ApiBearerAuth('jwt')
  @ApiParam({ name: 'lang', type: String })
  @UseGuards(AuthUserGuard)
  async getPreferedCategories(@Req() req: CustomUserRequest, @Param('lang') lang: string) {
    try {
      const { email } = req.user;
      return await this.userService.getPreferedCategories(email, lang as LANGUAGES);
    } catch (error) {
      throw error;
    }
  }
}