UNPKG

json-api-nestjs

Version:
44 lines 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.patchOne = patchOne; const swagger_1 = require("@nestjs/swagger"); const zod_openapi_1 = require("@anatine/zod-openapi"); const types_1 = require("../../types"); const utils_1 = require("../utils"); const zod_1 = require("../../zod"); const factory_1 = require("../../factory"); function patchOne(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: `Update item of resource "${entityName}"`, operationId: `${controller.constructor.name}_${methodName}`, })(controller, methodName, descriptor); (0, swagger_1.ApiParam)({ name: 'id', required: true, type: primaryColumnType === types_1.TypeField.number ? 'integer' : 'string', description: `ID of resource "${entityName}"`, })(controller, methodName, descriptor); (0, swagger_1.ApiBody)({ description: `Json api schema for update "${entityName}" item`, schema: (0, zod_openapi_1.generateSchema)((0, zod_1.zodPatch)(primaryColumnType, typeName, fieldWithType, propsDb, primaryColumnName, relationArrayProps, relationPopsName, primaryColumnTypeForRel)), required: true, })(controller, methodName, descriptor); (0, swagger_1.ApiResponse)({ status: 200, description: `Item of resource "${entityName}" has been updated`, 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=patch-one.js.map