HM-35. Описаны все ответы ошибок сервера, поправлены ответы и тексты описания. HM-60. Исправлена ошибка падения сервера при попытке найти не существующее хранилище
This commit is contained in:
@ -5,6 +5,19 @@ import {ApiResponse, ApiTags, ApiParam, ApiBody} from '@nestjs/swagger';
|
||||
import {ALLOW_ORIGIN_ALL, ALLOW_METHOD, ALLOW_CREDENTIALS, CONTENT_LENGTH, ALLOW_HEADERS, COLLECTION_STORE} from 'src/consts';
|
||||
import {Request} from 'express';
|
||||
import {LoggingInterceptor} from 'src/logs/logging.interceptor';
|
||||
import {
|
||||
FIND_ALL_SUCCESS,
|
||||
CREATE_SUCCESS,
|
||||
CREATE_CONFLICT,
|
||||
CREATE_NOT_VALID,
|
||||
FIND_ONE_SUCCESS,
|
||||
FIND_ONE_NOT_FOUND,
|
||||
UPDATE_SUCCESS,
|
||||
UPDATE_NOT_FOUND,
|
||||
UPDATE_NOT_VALID,
|
||||
REMOVE_SUCCESS,
|
||||
REMOVE_NOT_FOUND,
|
||||
} from './store.responses';
|
||||
|
||||
const prepareStoreToStoreRequest = ({
|
||||
key, value, description, service_name, author
|
||||
@ -27,11 +40,7 @@ export class StoreController {
|
||||
|
||||
@Get()
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Список всех пар ключ-значение',
|
||||
type: [StoreRequest],
|
||||
})
|
||||
@ApiResponse(FIND_ALL_SUCCESS)
|
||||
async findAll(@Req() request: Request): Promise<StoreRequest[]> {
|
||||
const api = makeApiHeader(request);
|
||||
const storeList = await this.storeService.findAll(api);
|
||||
@ -40,14 +49,11 @@ export class StoreController {
|
||||
|
||||
@Get(':key')
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Возвращает пару ключ-значение по ключу',
|
||||
type: StoreRequest,
|
||||
})
|
||||
@ApiResponse(FIND_ONE_SUCCESS)
|
||||
@ApiResponse(FIND_ONE_NOT_FOUND)
|
||||
@ApiParam({
|
||||
name: 'key',
|
||||
description: 'Уникальный ключ для получения api',
|
||||
description: 'Ключ для поиска хранилища',
|
||||
})
|
||||
async findOne(@Req() request: Request<{key: string}>): Promise<StoreRequest> {
|
||||
const {key} = request.params;
|
||||
@ -58,14 +64,12 @@ export class StoreController {
|
||||
|
||||
@Post()
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@ApiResponse({
|
||||
status: 201,
|
||||
description: 'Создает новую пару ключ-значение',
|
||||
type: StoreRequest,
|
||||
})
|
||||
@ApiResponse(CREATE_SUCCESS)
|
||||
@ApiResponse(CREATE_CONFLICT)
|
||||
@ApiResponse(CREATE_NOT_VALID)
|
||||
@ApiBody({
|
||||
type: StoreRequest,
|
||||
description: 'Принимает объект для создания api'
|
||||
description: 'Объект для создания хранилища'
|
||||
})
|
||||
async create(@Req() request: Request<null, StoreRequest>): Promise<StoreRequest> {
|
||||
const api = makeApiHeader(request);
|
||||
@ -75,14 +79,12 @@ export class StoreController {
|
||||
|
||||
@Put()
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Обновляет по ключу объект и мета-поля, кроме author',
|
||||
type: StoreRequest,
|
||||
})
|
||||
@ApiResponse(UPDATE_SUCCESS)
|
||||
@ApiResponse(UPDATE_NOT_FOUND)
|
||||
@ApiResponse(UPDATE_NOT_VALID)
|
||||
@ApiBody({
|
||||
type: StoreRequest,
|
||||
description: 'Принимает объект для обновления api'
|
||||
description: 'Объект для обновления хранилища'
|
||||
})
|
||||
async update(@Req() request: Request<null, StoreRequest>): Promise<StoreRequest> {
|
||||
const api = makeApiHeader(request);
|
||||
@ -92,14 +94,11 @@ export class StoreController {
|
||||
|
||||
@Delete(':key')
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Удаляет пару ключ-значение по ключу',
|
||||
type: StoreRequest,
|
||||
})
|
||||
@ApiResponse(REMOVE_SUCCESS)
|
||||
@ApiResponse(REMOVE_NOT_FOUND)
|
||||
@ApiParam({
|
||||
name: 'key',
|
||||
description: 'Уникальный ключ для удаления api',
|
||||
description: 'Ключ для удаления хранилища',
|
||||
})
|
||||
async removeOne(@Req() request: Request<{key: string}>): Promise<StoreRequest> {
|
||||
const {key} = request.params;
|
||||
@ -108,7 +107,7 @@ export class StoreController {
|
||||
return prepareStoreToStoreRequest(store);
|
||||
}
|
||||
|
||||
@Options('')
|
||||
@Options(['', ':key'])
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@Header(...ALLOW_METHOD)
|
||||
@Header(...ALLOW_CREDENTIALS)
|
||||
@ -118,15 +117,4 @@ export class StoreController {
|
||||
async options(): Promise<string> {
|
||||
return '';
|
||||
}
|
||||
|
||||
@Options(':key')
|
||||
@Header(...ALLOW_ORIGIN_ALL)
|
||||
@Header(...ALLOW_METHOD)
|
||||
@Header(...ALLOW_CREDENTIALS)
|
||||
@Header(...CONTENT_LENGTH)
|
||||
@Header(...ALLOW_HEADERS)
|
||||
@HttpCode(204)
|
||||
async optionsByParam(): Promise<string> {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user