simulations.controller.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {
  2. Body,
  3. Controller,
  4. Get,
  5. Post,
  6. Query,
  7. Req,
  8. UseGuards,
  9. } from '@nestjs/common';
  10. import type { Request } from 'express';
  11. import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
  12. import { CreateSimulationDto } from './dto/create-simulation.dto';
  13. import { ListSimulationTemplateOptionsQueryDto } from './dto/list-simulation-templates-query.dto';
  14. import { SimulationsService } from './simulations.service';
  15. type AuthenticatedRequest = Request & {
  16. user: {
  17. stylistId: string | number;
  18. };
  19. };
  20. @UseGuards(JwtAuthGuard)
  21. @Controller('simulations')
  22. export class SimulationsController {
  23. constructor(private readonly simulationsService: SimulationsService) {}
  24. @Get('template-options')
  25. listTemplateOptions(
  26. @Req() request: AuthenticatedRequest,
  27. @Query() query: ListSimulationTemplateOptionsQueryDto,
  28. ) {
  29. return this.simulationsService.listTemplateOptions(
  30. BigInt(request.user.stylistId),
  31. query,
  32. );
  33. }
  34. @Post()
  35. create(@Body() body: CreateSimulationDto) {
  36. return this.simulationsService.create(body);
  37. }
  38. }