UNPKG

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

Version:

A plugin for patient record

136 lines (135 loc) 5.33 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.UnitRepository = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _subUnit = _interopRequireDefault(require("./sub-unit")); var _unit = require("../models/unit"); var _database = require("@medusajs/medusa/dist/loaders/database"); var UnitRepository = exports.UnitRepository = _database.dataSource.getRepository(_unit.Unit).extend({ upsertSubUnitViaUnit: function upsertSubUnitViaUnit(nominatorInput, denominatorInput) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var nominator, denominator; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return _subUnit["default"].upsertSubUnit({ id: nominatorInput, title: nominatorInput }); case 2: _context.t0 = _context.sent; if (_context.t0) { _context.next = 5; break; } _context.t0 = null; case 5: nominator = _context.t0; _context.next = 8; return _subUnit["default"].upsertSubUnit({ id: denominatorInput, title: denominatorInput }); case 8: _context.t1 = _context.sent; if (_context.t1) { _context.next = 11; break; } _context.t1 = null; case 11: denominator = _context.t1; return _context.abrupt("return", { nominator: nominator, denominator: denominator }); case 13: case "end": return _context.stop(); } }, _callee); }))(); }, upsertUnit: function upsertUnit(unit) { var _this = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { var nominatorId, denominatorId, existing, _yield$_this$upsertSu, nominator, denominator, created, queryBuilder, _rawTypes, rawTypes; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: nominatorId = unit.nominator_id, denominatorId = unit.denominator_id; // Avoid empty one of nominator/denominator or nominator and denominator is equal if (!(!nominatorId && !denominatorId || nominatorId === denominatorId)) { _context2.next = 3; break; } return _context2.abrupt("return", null); case 3: _context2.next = 5; return _this.findOne({ where: [{ nominator_id: nominatorId, denominator_id: denominatorId }] }); case 5: existing = _context2.sent; _context2.next = 8; return _this.upsertSubUnitViaUnit(nominatorId, denominatorId); case 8: _yield$_this$upsertSu = _context2.sent; nominator = _yield$_this$upsertSu.nominator; denominator = _yield$_this$upsertSu.denominator; if (!existing) { _context2.next = 17; break; } if (!(existing.id && nominatorId && denominatorId && (existing.denominator_id !== denominatorId || existing.nominator_id !== nominatorId))) { _context2.next = 16; break; } _context2.next = 15; return _this.save({ id: existing.id, denominator: denominator, nominator: nominator }); case 15: return _context2.abrupt("return", _context2.sent); case 16: return _context2.abrupt("return", existing); case 17: created = _this.create({ id: unit.id, denominator: denominator, nominator: nominator }); queryBuilder = _this.createQueryBuilder().insert().into(_unit.Unit).values(created); if (queryBuilder.connection.driver.isReturningSqlSupported("insert")) { _context2.next = 24; break; } _context2.next = 22; return queryBuilder.execute(); case 22: _rawTypes = _context2.sent; return _context2.abrupt("return", _this.create(_rawTypes.generatedMaps[0])); case 24: _context2.next = 26; return queryBuilder.returning("*").execute(); case 26: rawTypes = _context2.sent; return _context2.abrupt("return", _this.create(rawTypes.generatedMaps[0])); case 28: case "end": return _context2.stop(); } }, _callee2); }))(); } }); var _default = exports["default"] = UnitRepository;