UNPKG

json-api-nestjs

Version:
104 lines 4.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MicroOrmService = void 0; const tslib_1 = require("tslib"); const nestjs_shared_1 = require("../../../utils/nestjs-shared"); const common_1 = require("@nestjs/common"); const orm_methods_1 = require("../orm-methods"); const micro_orm_util_service_1 = require("./micro-orm-util.service"); const json_api_transformer_service_1 = require("../../mixin/service/json-api-transformer.service"); class MicroOrmService { microOrmUtilService; jsonApiTransformerService; async getAll(query) { const { page } = query; const { totalItems, items } = await orm_methods_1.getAll.call(this, query); const { data, included } = this.jsonApiTransformerService.transformData(items, query); const meta = { totalItems: totalItems, pageNumber: page.number, pageSize: page.size, }; return { meta, data, ...(included ? { included } : {}), }; } async getOne(id, query) { const result = await orm_methods_1.getOne.call(this, id, query); const { data, included } = this.jsonApiTransformerService.transformData(result, query); return { meta: {}, data, ...(included ? { included } : {}), }; } async deleteOne(id) { await orm_methods_1.deleteOne.call(this, id); } async postOne(inputData) { const result = await orm_methods_1.postOne.call(this, inputData); const { relationships } = inputData; const fakeQuery = { [nestjs_shared_1.QueryField.fields]: null, [nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}), }; const resultForResponse = await orm_methods_1.getOne.call(this, result[this.microOrmUtilService.currentPrimaryColumn], fakeQuery); const { data, included } = this.jsonApiTransformerService.transformData(resultForResponse, fakeQuery); return { meta: {}, data, ...(included ? { included } : {}), }; } async patchOne(id, inputData) { await orm_methods_1.patchOne.call(this, id, inputData); const { relationships } = inputData; const fakeQuery = { [nestjs_shared_1.QueryField.fields]: null, [nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}), }; const resultForResponse = await orm_methods_1.getOne.call(this, id, fakeQuery); const { data, included } = this.jsonApiTransformerService.transformData(resultForResponse, fakeQuery); return { meta: {}, data, ...(included ? { included } : {}), }; } async getRelationship(id, rel) { const result = await orm_methods_1.getRelationship.call(this, id, rel); return { meta: {}, data: this.jsonApiTransformerService.transformRel(result, rel), }; } async deleteRelationship(id, rel, input) { await orm_methods_1.deleteRelationship.call(this, id, rel, input); } async postRelationship(id, rel, input) { const result = await orm_methods_1.postRelationship.call(this, id, rel, input); return { meta: {}, data: this.jsonApiTransformerService.transformRel(result, rel), }; } async patchRelationship(id, rel, input) { const result = await orm_methods_1.patchRelationship.call(this, id, rel, input); return { meta: {}, data: this.jsonApiTransformerService.transformRel(result, rel), }; } } exports.MicroOrmService = MicroOrmService; tslib_1.__decorate([ (0, common_1.Inject)(micro_orm_util_service_1.MicroOrmUtilService), tslib_1.__metadata("design:type", micro_orm_util_service_1.MicroOrmUtilService) ], MicroOrmService.prototype, "microOrmUtilService", void 0); tslib_1.__decorate([ (0, common_1.Inject)(json_api_transformer_service_1.JsonApiTransformerService), tslib_1.__metadata("design:type", json_api_transformer_service_1.JsonApiTransformerService) ], MicroOrmService.prototype, "jsonApiTransformerService", void 0); //# sourceMappingURL=microorm-service.js.map