import { Body, Controller, Get, Param, Post, Put, Query, UseGuards, } from '@nestjs/common'; import { TindakanDokterService } from './tindakandokter.service'; import { AuthGuard } from '../auth/guard/auth.guard'; import { CurrentUser } from '../auth/decorator/current-user.decorator'; import type { ActiveUserPayload } from '../auth/decorator/current-user.decorator'; import { CreateTindakanDokterDto } from './dto/create-tindakan-dto'; import { UpdateTindakanDokterDto } from './dto/update-tindakan-dto'; @Controller('/tindakan') export class TindakanDokterController { constructor(private tindakanDokterService: TindakanDokterService) {} @Get('/') @UseGuards(AuthGuard) async getAllTindakanDokter( @Query('take') take: number, @Query('id_visit') id_visit: string, @Query('tindakan') tindakan: string, @Query('kelompok') kelompok_tindakan: string, @Query('kategori') kategori_tindakan: string, @Query('skip') skip: number, @Query('page') page: number, @Query('orderBy') orderBy: string, @Query('order') order: 'asc' | 'desc', ) { console.log(); return await this.tindakanDokterService.getAllTindakanDokter({ take, id_visit, tindakan, kelompok_tindakan, kategori_tindakan, skip, page, orderBy: orderBy ? { [orderBy]: order || 'asc' } : undefined, }); } @Post('/') @UseGuards(AuthGuard) async createTindakanDokter( @Body() data: CreateTindakanDokterDto, @CurrentUser() user: ActiveUserPayload, ) { return await this.tindakanDokterService.createTindakanDokter(data, user); } @Get('/:id') @UseGuards(AuthGuard) async getTindakanDokterById(@Param('id') id: number) { return await this.tindakanDokterService.getTindakanDokterById(id); } @Put('/:id') @UseGuards(AuthGuard) async updateTindakanDokter( @Param('id') id: number, @Body() data: UpdateTindakanDokterDto, @CurrentUser() user: ActiveUserPayload, ) { return await this.tindakanDokterService.updateTindakanDokter( id, data, user, ); } @Get('/:id/log') @UseGuards(AuthGuard) async getTindakanLog(@Param('id') id: string) { return await this.tindakanDokterService.getTindakanLogById(id); } }