json-api-nestjs
Version:
JsonApi Plugin for NestJs
54 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deleteRelationship = deleteRelationship;
const swagger_1 = require("@nestjs/swagger");
const zod_openapi_1 = require("@anatine/zod-openapi");
const types_1 = require("../../types");
const zod_1 = require("../../zod");
const utils_1 = require("../utils");
function deleteRelationship(controller, descriptor, entity, mapEntity, methodName) {
const entityName = entity.name;
const { relations, primaryColumnType } = (0, utils_1.getEntityMapProps)(mapEntity, entity);
(0, swagger_1.ApiOperation)({
summary: `Delete list of relation for resource "${entityName}"`,
operationId: `${controller.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.ApiParam)({
name: 'relName',
required: true,
type: 'string',
enum: relations,
description: `Relation name of resource "${entityName}"`,
})(controller, methodName, descriptor);
(0, swagger_1.ApiBody)({
description: `Json api schema for delete "${entityName}" item`,
schema: (0, zod_openapi_1.generateSchema)(zod_1.zodPatchRelationship),
required: true,
})(controller, methodName, descriptor);
(0, swagger_1.ApiResponse)({
status: 400,
description: 'Wrong url parameters',
schema: utils_1.errorSchema,
})(controller, methodName, descriptor);
(0, swagger_1.ApiResponse)({
status: 422,
description: 'Incorrect type for relation',
schema: utils_1.errorSchema,
})(controller, methodName, descriptor);
(0, swagger_1.ApiResponse)({
status: 404,
description: 'Resource not found ',
schema: utils_1.errorSchema,
})(controller, methodName, descriptor);
(0, swagger_1.ApiResponse)({
status: 204,
description: `Item/s of relation for "${entityName}" has been deleted`,
})(controller, methodName, descriptor);
}
//# sourceMappingURL=delete-relationship.js.map