import { Controller, Get, HttpCode, HttpStatus, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { type PageDto } from '../../common/dto/page.dto'; import { RoleType } from '../../constants'; import { ApiPageOkResponse, Auth, Whitelist } from '../../decorators'; import { AuditLogService } from './audit-log.service'; import { AuditLogDto } from './dtos/audit-log.dto'; import { AuditLogPageOptionsDto } from './dtos/get-audit-log-page.dto'; @Controller('audit-log') @ApiTags('audit-log') export class AuditLogController { constructor(private auditLogService: AuditLogService) {} @Get() @Whitelist() @Auth([RoleType.ADMIN]) @HttpCode(HttpStatus.OK) @ApiPageOkResponse({ type: AuditLogDto, description: 'Get audit logs', }) async getAuditLogs( @Query() query: AuditLogPageOptionsDto, ): Promise> { return this.auditLogService.findMany(query); } }