HM-57. Собираются два типа данные: серверные ошибки и пара запрос-ответ пользователю апи. Серверные ошибки расширены доп полями в том числе дата ошибки. Появилась возможность очищать логи

This commit is contained in:
vigdorov
2020-07-19 14:40:07 +03:00
parent 8c003a15d0
commit cdda74475e
12 changed files with 259 additions and 47 deletions

View File

@ -1,8 +1,8 @@
import {Controller, Get, Header} from '@nestjs/common';
import {ApiTags, ApiResponse} from '@nestjs/swagger';
import {Controller, Get, Header, Req, NotFoundException, Delete, Options, HttpCode} from '@nestjs/common';
import {ApiTags, ApiResponse, ApiParam} from '@nestjs/swagger';
import {LogsService} from './logs.service';
import {ALLOW_ORIGIN_ALL, COLLECTION_LOGS} from 'src/consts';
import {Log, LogRequest} from './logs.schema';
import {ALLOW_ORIGIN_ALL, COLLECTION_LOGS, LOG_TYPE, ALLOW_METHOD, ALLOW_CREDENTIALS, CONTENT_LENGTH, ALLOW_HEADERS} from 'src/consts';
import {ClienLogRequest, ClientLog, ServerLog} from './logs.schema';
@Controller(COLLECTION_LOGS)
@ApiTags(COLLECTION_LOGS)
@ -11,15 +11,48 @@ export class LogsController {
private readonly logsService: LogsService
) {}
@Get()
@Get('/client')
@Header(...ALLOW_ORIGIN_ALL)
@ApiResponse({
status: 200,
description: 'Возвращает список всех логов',
type: [LogRequest],
type: [ClienLogRequest]
})
async findAll(): Promise<Log[]> {
const logsList = await this.logsService.findAll();
return logsList;
async findAllClientLogs(): Promise<ClientLog[]> {
return await this.logsService.findAllClientLogs();
}
@Delete('/client')
@Header(...ALLOW_ORIGIN_ALL)
async clearAllClientLogs(): Promise<[]> {
return await this.logsService.clearLogsByType(LOG_TYPE.CLIENT);
}
@Get('/server')
@Header(...ALLOW_ORIGIN_ALL)
@ApiResponse({
status: 200,
description: 'Возвращает список всех логов',
type: [ClienLogRequest]
})
async findAllServerLogs(): Promise<ServerLog[]> {
return await this.logsService.findAllServerLogs();
}
@Delete('/server')
@Header(...ALLOW_ORIGIN_ALL)
async clearAllServerLogs(): Promise<[]> {
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 '';
}
}