1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.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;
|
4 | const http_status_enum_1 = require("@nestjs/common/enums/http-status.enum");
|
5 | const lodash_1 = require("lodash");
|
6 | const constants_1 = require("../constants");
|
7 | const helpers_1 = require("./helpers");
|
8 | function ApiResponse(options) {
|
9 | const [type, isArray] = 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']: 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 | }
|
27 | exports.ApiResponse = ApiResponse;
|
28 | const ApiOkResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.OK }));
|
29 | exports.ApiOkResponse = ApiOkResponse;
|
30 | const ApiCreatedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.CREATED }));
|
31 | exports.ApiCreatedResponse = ApiCreatedResponse;
|
32 | const ApiAcceptedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.ACCEPTED }));
|
33 | exports.ApiAcceptedResponse = ApiAcceptedResponse;
|
34 | const ApiNoContentResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.NO_CONTENT }));
|
35 | exports.ApiNoContentResponse = ApiNoContentResponse;
|
36 | const ApiMovedPermanentlyResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.MOVED_PERMANENTLY }));
|
37 | exports.ApiMovedPermanentlyResponse = ApiMovedPermanentlyResponse;
|
38 | const ApiFoundResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.FOUND }));
|
39 | exports.ApiFoundResponse = ApiFoundResponse;
|
40 | const ApiBadRequestResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.BAD_REQUEST }));
|
41 | exports.ApiBadRequestResponse = ApiBadRequestResponse;
|
42 | const ApiUnauthorizedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.UNAUTHORIZED }));
|
43 | exports.ApiUnauthorizedResponse = ApiUnauthorizedResponse;
|
44 | const ApiTooManyRequestsResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.TOO_MANY_REQUESTS }));
|
45 | exports.ApiTooManyRequestsResponse = ApiTooManyRequestsResponse;
|
46 | const ApiNotFoundResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.NOT_FOUND }));
|
47 | exports.ApiNotFoundResponse = ApiNotFoundResponse;
|
48 | const ApiInternalServerErrorResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.INTERNAL_SERVER_ERROR }));
|
49 | exports.ApiInternalServerErrorResponse = ApiInternalServerErrorResponse;
|
50 | const ApiBadGatewayResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.BAD_GATEWAY }));
|
51 | exports.ApiBadGatewayResponse = ApiBadGatewayResponse;
|
52 | const ApiConflictResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.CONFLICT }));
|
53 | exports.ApiConflictResponse = ApiConflictResponse;
|
54 | const ApiForbiddenResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.FORBIDDEN }));
|
55 | exports.ApiForbiddenResponse = ApiForbiddenResponse;
|
56 | const ApiGatewayTimeoutResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.GATEWAY_TIMEOUT }));
|
57 | exports.ApiGatewayTimeoutResponse = ApiGatewayTimeoutResponse;
|
58 | const ApiGoneResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.GONE }));
|
59 | exports.ApiGoneResponse = ApiGoneResponse;
|
60 | const ApiMethodNotAllowedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.METHOD_NOT_ALLOWED }));
|
61 | exports.ApiMethodNotAllowedResponse = ApiMethodNotAllowedResponse;
|
62 | const ApiNotAcceptableResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.NOT_ACCEPTABLE }));
|
63 | exports.ApiNotAcceptableResponse = ApiNotAcceptableResponse;
|
64 | const ApiNotImplementedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.NOT_IMPLEMENTED }));
|
65 | exports.ApiNotImplementedResponse = ApiNotImplementedResponse;
|
66 | const ApiPreconditionFailedResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.PRECONDITION_FAILED }));
|
67 | exports.ApiPreconditionFailedResponse = ApiPreconditionFailedResponse;
|
68 | const ApiPayloadTooLargeResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.PAYLOAD_TOO_LARGE }));
|
69 | exports.ApiPayloadTooLargeResponse = ApiPayloadTooLargeResponse;
|
70 | const ApiRequestTimeoutResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.REQUEST_TIMEOUT }));
|
71 | exports.ApiRequestTimeoutResponse = ApiRequestTimeoutResponse;
|
72 | const ApiServiceUnavailableResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.SERVICE_UNAVAILABLE }));
|
73 | exports.ApiServiceUnavailableResponse = ApiServiceUnavailableResponse;
|
74 | const ApiUnprocessableEntityResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.UNPROCESSABLE_ENTITY }));
|
75 | exports.ApiUnprocessableEntityResponse = ApiUnprocessableEntityResponse;
|
76 | const ApiUnsupportedMediaTypeResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: http_status_enum_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE }));
|
77 | exports.ApiUnsupportedMediaTypeResponse = ApiUnsupportedMediaTypeResponse;
|
78 | const ApiDefaultResponse = (options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: 'default' }));
|
79 | exports.ApiDefaultResponse = ApiDefaultResponse;
|