UNPKG

json-api-nestjs

Version:
37 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.postOne = postOne; const swagger_1 = require("@nestjs/swagger"); const zod_openapi_1 = require("@anatine/zod-openapi"); const utils_1 = require("../utils"); const zod_1 = require("../../zod"); const factory_1 = require("../../factory"); function postOne(controller, descriptor, entity, mapEntity, methodName) { const entityName = entity.name; const { primaryColumnType, typeName, fieldWithType, propsDb, primaryColumnName, relationArrayProps, relationPopsName, primaryColumnTypeForRel, } = (0, factory_1.getParamsForOatchANdPostZod)(mapEntity, entity); (0, swagger_1.ApiOperation)({ summary: `Create item of resource "${entityName}"`, operationId: `${controller.constructor.name}_${methodName}`, })(controller, methodName, descriptor); (0, swagger_1.ApiBody)({ description: `Json api schema for new "${entityName}" item`, schema: (0, zod_openapi_1.generateSchema)((0, zod_1.zodPost)(primaryColumnType, typeName, fieldWithType, propsDb, primaryColumnName, relationArrayProps, relationPopsName, primaryColumnTypeForRel)), required: true, })(controller, methodName, descriptor); (0, swagger_1.ApiResponse)({ status: 201, description: `Item of resource "${entityName}" has been created`, schema: (0, utils_1.jsonSchemaResponse)(entity, mapEntity), })(controller, methodName, descriptor); (0, swagger_1.ApiResponse)({ status: 400, description: 'Wrong body parameters', schema: utils_1.errorSchema, })(controller, methodName, descriptor); (0, swagger_1.ApiResponse)({ status: 422, description: 'Unprocessable data', schema: utils_1.errorSchema, })(controller, methodName, descriptor); } //# sourceMappingURL=post-one.js.map