UNPKG

7.68 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ApiDefaultResponse = exports.ApiUnsupportedMediaTypeResponse = exports.ApiUnprocessableEntityResponse = exports.ApiServiceUnavailableResponse = exports.ApiRequestTimeoutResponse = exports.ApiPayloadTooLargeResponse = exports.ApiPreconditionFailedResponse = exports.ApiNotImplementedResponse = exports.ApiNotAcceptableResponse = exports.ApiMethodNotAllowedResponse = exports.ApiGoneResponse = exports.ApiGatewayTimeoutResponse = exports.ApiForbiddenResponse = exports.ApiConflictResponse = exports.ApiBadGatewayResponse = exports.ApiInternalServerErrorResponse = exports.ApiNotFoundResponse = exports.ApiTooManyRequestsResponse = exports.ApiUnauthorizedResponse = exports.ApiBadRequestResponse = exports.ApiFoundResponse = exports.ApiMovedPermanentlyResponse = exports.ApiNoContentResponse = exports.ApiAcceptedResponse = exports.ApiCreatedResponse = exports.ApiOkResponse = exports.ApiResponse = void 0;
4const common_1 = require("@nestjs/common");
5const lodash_1 = require("lodash");
6const constants_1 = require("../constants");
7const helpers_1 = require("./helpers");
8function ApiResponse(options) {
9 const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(options.type, options.isArray);
10 options.type = type;
11 options.isArray = isArray;
12 options.description = options.description ? options.description : '';
13 const groupedMetadata = {
14 [options.status || 'default']: (0, lodash_1.omit)(options, 'status')
15 };
16 return (target, key, descriptor) => {
17 if (descriptor) {
18 const responses = Reflect.getMetadata(constants_1.DECORATORS.API_RESPONSE, descriptor.value) || {};
19 Reflect.defineMetadata(constants_1.DECORATORS.API_RESPONSE, Object.assign(Object.assign({}, responses), groupedMetadata), descriptor.value);
20 return descriptor;
21 }
22 const responses = Reflect.getMetadata(constants_1.DECORATORS.API_RESPONSE, target) || {};
23 Reflect.defineMetadata(constants_1.DECORATORS.API_RESPONSE, Object.assign(Object.assign({}, responses), groupedMetadata), target);
24 return target;
25 };
26}
27exports.ApiResponse = ApiResponse;
28const ApiOkResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.OK }));
29exports.ApiOkResponse = ApiOkResponse;
30const ApiCreatedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.CREATED }));
31exports.ApiCreatedResponse = ApiCreatedResponse;
32const ApiAcceptedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.ACCEPTED }));
33exports.ApiAcceptedResponse = ApiAcceptedResponse;
34const ApiNoContentResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.NO_CONTENT }));
35exports.ApiNoContentResponse = ApiNoContentResponse;
36const ApiMovedPermanentlyResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.MOVED_PERMANENTLY }));
37exports.ApiMovedPermanentlyResponse = ApiMovedPermanentlyResponse;
38const ApiFoundResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.FOUND }));
39exports.ApiFoundResponse = ApiFoundResponse;
40const ApiBadRequestResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.BAD_REQUEST }));
41exports.ApiBadRequestResponse = ApiBadRequestResponse;
42const ApiUnauthorizedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.UNAUTHORIZED }));
43exports.ApiUnauthorizedResponse = ApiUnauthorizedResponse;
44const ApiTooManyRequestsResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.TOO_MANY_REQUESTS }));
45exports.ApiTooManyRequestsResponse = ApiTooManyRequestsResponse;
46const ApiNotFoundResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.NOT_FOUND }));
47exports.ApiNotFoundResponse = ApiNotFoundResponse;
48const ApiInternalServerErrorResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.INTERNAL_SERVER_ERROR }));
49exports.ApiInternalServerErrorResponse = ApiInternalServerErrorResponse;
50const ApiBadGatewayResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.BAD_GATEWAY }));
51exports.ApiBadGatewayResponse = ApiBadGatewayResponse;
52const ApiConflictResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.CONFLICT }));
53exports.ApiConflictResponse = ApiConflictResponse;
54const ApiForbiddenResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.FORBIDDEN }));
55exports.ApiForbiddenResponse = ApiForbiddenResponse;
56const ApiGatewayTimeoutResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.GATEWAY_TIMEOUT }));
57exports.ApiGatewayTimeoutResponse = ApiGatewayTimeoutResponse;
58const ApiGoneResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.GONE }));
59exports.ApiGoneResponse = ApiGoneResponse;
60const ApiMethodNotAllowedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.METHOD_NOT_ALLOWED }));
61exports.ApiMethodNotAllowedResponse = ApiMethodNotAllowedResponse;
62const ApiNotAcceptableResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.NOT_ACCEPTABLE }));
63exports.ApiNotAcceptableResponse = ApiNotAcceptableResponse;
64const ApiNotImplementedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.NOT_IMPLEMENTED }));
65exports.ApiNotImplementedResponse = ApiNotImplementedResponse;
66const ApiPreconditionFailedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.PRECONDITION_FAILED }));
67exports.ApiPreconditionFailedResponse = ApiPreconditionFailedResponse;
68const ApiPayloadTooLargeResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.PAYLOAD_TOO_LARGE }));
69exports.ApiPayloadTooLargeResponse = ApiPayloadTooLargeResponse;
70const ApiRequestTimeoutResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.REQUEST_TIMEOUT }));
71exports.ApiRequestTimeoutResponse = ApiRequestTimeoutResponse;
72const ApiServiceUnavailableResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.SERVICE_UNAVAILABLE }));
73exports.ApiServiceUnavailableResponse = ApiServiceUnavailableResponse;
74const ApiUnprocessableEntityResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.UNPROCESSABLE_ENTITY }));
75exports.ApiUnprocessableEntityResponse = ApiUnprocessableEntityResponse;
76const ApiUnsupportedMediaTypeResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: common_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE }));
77exports.ApiUnsupportedMediaTypeResponse = ApiUnsupportedMediaTypeResponse;
78const ApiDefaultResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: 'default' }));
79exports.ApiDefaultResponse = ApiDefaultResponse;