HM-98. Описаны все ошибки api для swagger'a

This commit is contained in:
vigdorov
2020-08-01 00:46:28 +03:00
parent 3711ef5f8f
commit b4e2ded4df
6 changed files with 237 additions and 66 deletions

View File

@ -1,10 +1,29 @@
import {Controller, Req, Post, Options, Header, HttpCode} from '@nestjs/common';
import {ApiResponse, ApiTags, ApiBody} from '@nestjs/swagger';
import {ALLOW_ORIGIN_ALL, ALLOW_METHOD, ALLOW_CREDENTIALS, CONTENT_LENGTH, ALLOW_HEADERS, AUTH_CONTROLLER} from '../consts';
import {UserService} from '../users/users.service';
import {AuthRequest, TokenResponse, RefreshAuthRequest, CheckAuthTokenRequest} from '../users/users.schema';
import {Request} from 'express';
import {
ALLOW_ORIGIN_ALL,
ALLOW_METHOD,
ALLOW_CREDENTIALS,
CONTENT_LENGTH,
ALLOW_HEADERS,
AUTH_CONTROLLER,
} from '../consts';
import { UserService } from '../users/users.service';
import {
AuthRequest,
TokenResponse,
RefreshAuthRequest,
CheckAuthTokenRequest,
} from '../users/users.schema';
import { Request } from 'express';
import {
AUTH_SUCCESS,
AUTH_BAD_REQUEST,
REFRESH_AUTH_SUCCESS,
REFRESH_AUTH_BAD_REQUEST,
CHECK_AUTH_TOKEN,
} from './auth.responses';
@Controller(AUTH_CONTROLLER)
@ -16,14 +35,11 @@ export class AuthController {
@Post()
@Header(...ALLOW_ORIGIN_ALL)
@ApiResponse({
status: 201,
description: 'Метод авторизации пользователя',
type: TokenResponse,
})
@ApiResponse(AUTH_SUCCESS)
@ApiResponse(AUTH_BAD_REQUEST)
@ApiBody({
type: AuthRequest,
description: 'Ожидает логин и пароль пользователя для авторизации'
description: 'Объект с логином и паролем пользователя для авторизации'
})
async authUser(@Req() request: Request<null, AuthRequest>): Promise<TokenResponse> {
const host = request.headers.host;
@ -33,11 +49,8 @@ export class AuthController {
@Post('refresh')
@Header(...ALLOW_ORIGIN_ALL)
@ApiResponse({
status: 201,
description: 'Метод обновления токенов',
type: TokenResponse,
})
@ApiResponse(REFRESH_AUTH_SUCCESS)
@ApiResponse(REFRESH_AUTH_BAD_REQUEST)
@ApiBody({
type: RefreshAuthRequest,
description: 'Токен для сброса токенов'
@ -50,18 +63,13 @@ export class AuthController {
}
@Post('check')
@ApiResponse({
status: 200,
description: 'Проверяет токен авторизации',
type: Boolean,
})
@ApiResponse(CHECK_AUTH_TOKEN)
@ApiBody({
type: CheckAuthTokenRequest,
description: 'Токен для проверки',
})
async checkAccessToken(@Req() request: Request<null, CheckAuthTokenRequest>): Promise<boolean> {
const {access_token, host, agent} = request.body;
console.log(request.headers)
return this.userService.checkAccessToken(access_token, host, agent);
}