UNPKG

@ai-ecom/medusa-plugin-patient-record

Version:

A plugin for patient record

119 lines (118 loc) 5.59 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.ExaminationResultTitleRepository = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _examinationResultTitle = require("../models/examination-result-title"); var _database = require("@medusajs/medusa/dist/loaders/database"); var _nature = require("./nature"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ExaminationResultTitleRepository = exports.ExaminationResultTitleRepository = _database.dataSource.getRepository(_examinationResultTitle.ExaminationResultTitle).extend({ upsertExaminationResultTitle: function upsertExaminationResultTitle(examinationResultTitle) { var _this = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var _existingNature, _existingNature2; var examinationResultTitleId, title, nature, nature_id, existingNature, existing, created, queryBuilder, _rawTypes, rawTypes; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (examinationResultTitle) { _context.next = 2; break; } return _context.abrupt("return", null); case 2: examinationResultTitleId = examinationResultTitle.id, title = examinationResultTitle.title, nature = examinationResultTitle.nature, nature_id = examinationResultTitle.nature_id; if (!nature) { _context.next = 7; break; } _context.next = 6; return _nature.NatureRepository.upsertNature({ name: nature }); case 6: existingNature = _context.sent; case 7: if (!nature_id) { _context.next = 11; break; } _context.next = 10; return _nature.NatureRepository.findOne({ where: { id: nature_id } }); case 10: existingNature = _context.sent; case 11: _context.next = 13; return _this.findOne({ where: [{ id: examinationResultTitleId }, { title: title, nature_id: (_existingNature = existingNature) === null || _existingNature === void 0 ? void 0 : _existingNature.id }], relations: ["references", "references.values", "nature"] }); case 13: existing = _context.sent; if (!existing) { _context.next = 20; break; } if (!(existing.id && title && existing.title !== title)) { _context.next = 19; break; } _context.next = 18; return _this.save({ id: existing.id, title: title }); case 18: return _context.abrupt("return", _context.sent); case 19: return _context.abrupt("return", existing); case 20: created = _this.create({ id: examinationResultTitleId, title: title, nature_id: (_existingNature2 = existingNature) === null || _existingNature2 === void 0 ? void 0 : _existingNature2.id }); queryBuilder = _this.createQueryBuilder().insert().into(_examinationResultTitle.ExaminationResultTitle).values(created); if (queryBuilder.connection.driver.isReturningSqlSupported("insert")) { _context.next = 27; break; } _context.next = 25; return queryBuilder.execute(); case 25: _rawTypes = _context.sent; return _context.abrupt("return", _objectSpread(_objectSpread({}, _this.create(_rawTypes.generatedMaps[0])), {}, { nature: existingNature })); case 27: _context.next = 29; return queryBuilder.returning("*").execute(); case 29: rawTypes = _context.sent; return _context.abrupt("return", _objectSpread(_objectSpread({}, _this.create(rawTypes.generatedMaps[0])), {}, { nature: existingNature })); case 31: case "end": return _context.stop(); } }, _callee); }))(); } }); var _default = exports["default"] = ExaminationResultTitleRepository;