hospital-log/backend/api/src/modules/tindakandokter/tindakandokter.controller.ts

83 lines
2.2 KiB
TypeScript
Raw Normal View History

import {
2025-11-06 10:07:08 +00:00
Body,
Controller,
Get,
Param,
2025-11-06 10:07:08 +00:00
Post,
Put,
Query,
UseGuards,
} from '@nestjs/common';
import { TindakanDokterService } from './tindakandokter.service';
import { AuthGuard } from '../auth/guard/auth.guard';
2025-11-06 10:07:08 +00:00
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,
2025-11-06 07:10:04 +00:00
@Query('id_visit') id_visit: string,
@Query('tindakan') tindakan: string,
2025-11-06 07:10:04 +00:00
@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',
) {
2025-11-06 07:10:04 +00:00
console.log();
return await this.tindakanDokterService.getAllTindakanDokter({
take,
2025-11-06 07:10:04 +00:00
id_visit,
tindakan,
2025-11-06 07:10:04 +00:00
kelompok_tindakan,
kategori_tindakan,
skip,
page,
orderBy: orderBy ? { [orderBy]: order || 'asc' } : undefined,
});
}
2025-11-06 10:07:08 +00:00
@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);
}
}