107 lines
3.3 KiB
TypeScript
107 lines
3.3 KiB
TypeScript
import {Controller, Get, Header, Delete, Options, HttpCode, Req} from '@nestjs/common';
|
|
import {ApiTags, ApiResponse, ApiSecurity} from '@nestjs/swagger';
|
|
import {LogsService} from './logs.service';
|
|
import {ALLOW_ORIGIN_ALL, COLLECTION_LOGS, LOG_TYPE, ALLOW_METHOD, ALLOW_CREDENTIALS, CONTENT_LENGTH, ALLOW_HEADERS} from 'src/consts';
|
|
import {ClienLogResponse, ServerLogResponse} from './logs.schema';
|
|
import {AuthService} from 'src/services/auth.service';
|
|
import {Request} from 'express';
|
|
|
|
@ApiSecurity('apiKey')
|
|
@Controller(COLLECTION_LOGS)
|
|
@ApiTags(COLLECTION_LOGS)
|
|
export class LogsController {
|
|
constructor(
|
|
private readonly logsService: LogsService,
|
|
private readonly authService: AuthService,
|
|
) {}
|
|
|
|
@Get('/client')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Возвращает список клиентских запросов',
|
|
type: ClienLogResponse,
|
|
isArray: true,
|
|
})
|
|
async findAllClientLogs(@Req() request: Request): Promise<ClienLogResponse[]> {
|
|
await this.authService.checkRequest(request);
|
|
|
|
return await this.logsService.findAllClientLogs();
|
|
}
|
|
|
|
@Delete('/client')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Пустой список клиентских запросов',
|
|
type: ClienLogResponse,
|
|
isArray: true,
|
|
})
|
|
async clearAllClientLogs(@Req() request: Request): Promise<ClienLogResponse[]> {
|
|
await this.authService.checkRequest(request);
|
|
|
|
return await this.logsService.clearLogsByType(LOG_TYPE.CLIENT);
|
|
}
|
|
|
|
@Get('/server')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Возвращает список серверных ошибок',
|
|
type: ServerLogResponse,
|
|
isArray: true,
|
|
})
|
|
async findAllServerLogs(@Req() request: Request): Promise<ServerLogResponse[]> {
|
|
await this.authService.checkRequest(request);
|
|
|
|
return await this.logsService.findAllServerLogs();
|
|
}
|
|
|
|
@Delete('/server')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@ApiResponse({
|
|
status: 200,
|
|
description: 'Пустой список серверных ошибок',
|
|
type: ServerLogResponse,
|
|
isArray: true,
|
|
})
|
|
async clearAllServerLogs(@Req() request: Request): Promise<ServerLogResponse[]> {
|
|
await this.authService.checkRequest(request);
|
|
|
|
return await this.logsService.clearLogsByType(LOG_TYPE.SERVER);
|
|
}
|
|
|
|
@Options('')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@Header(...ALLOW_METHOD)
|
|
@Header(...ALLOW_CREDENTIALS)
|
|
@Header(...CONTENT_LENGTH)
|
|
@Header(...ALLOW_HEADERS)
|
|
@HttpCode(204)
|
|
async options(): Promise<string> {
|
|
return '';
|
|
}
|
|
|
|
@Options('/server')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@Header(...ALLOW_METHOD)
|
|
@Header(...ALLOW_CREDENTIALS)
|
|
@Header(...CONTENT_LENGTH)
|
|
@Header(...ALLOW_HEADERS)
|
|
@HttpCode(204)
|
|
async optionsServer(): Promise<string> {
|
|
return '';
|
|
}
|
|
|
|
@Options('/client')
|
|
@Header(...ALLOW_ORIGIN_ALL)
|
|
@Header(...ALLOW_METHOD)
|
|
@Header(...ALLOW_CREDENTIALS)
|
|
@Header(...CONTENT_LENGTH)
|
|
@Header(...ALLOW_HEADERS)
|
|
@HttpCode(204)
|
|
async optionsClient(): Promise<string> {
|
|
return '';
|
|
}
|
|
}
|