UNPKG

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

Version:

A plugin for patient record

84 lines (83 loc) 3.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.ReferenceConditionRepository = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _referenceCondition = require("../models/reference-condition"); var _database = require("@medusajs/medusa/dist/loaders/database"); var _typeorm = require("typeorm"); var ReferenceConditionRepository = exports.ReferenceConditionRepository = _database.dataSource.getRepository(_referenceCondition.ReferenceCondition).extend({ upsertReferenceCondition: function upsertReferenceCondition(referenceCondition) { var _this = this; return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var existing, created, queryBuilder, _rawTypes, rawTypes; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (referenceCondition) { _context.next = 2; break; } return _context.abrupt("return", null); case 2: _context.next = 4; return _this.findOne({ where: [{ id: referenceCondition === null || referenceCondition === void 0 ? void 0 : referenceCondition.id }, { title: (0, _typeorm.Raw)(function (alias) { return "LOWER(".concat(alias, ") = LOWER('").concat(referenceCondition === null || referenceCondition === void 0 ? void 0 : referenceCondition.title, "')"); }) }] }); case 4: existing = _context.sent; if (!existing) { _context.next = 11; break; } if (!(existing.id && referenceCondition.title && existing.title !== referenceCondition.title)) { _context.next = 10; break; } _context.next = 9; return _this.save({ id: existing.id, title: referenceCondition.title }); case 9: return _context.abrupt("return", _context.sent); case 10: return _context.abrupt("return", existing); case 11: created = _this.create({ title: referenceCondition.title }); queryBuilder = _this.createQueryBuilder().insert().into(_referenceCondition.ReferenceCondition).values(created); if (queryBuilder.connection.driver.isReturningSqlSupported("insert")) { _context.next = 18; break; } _context.next = 16; return queryBuilder.execute(); case 16: _rawTypes = _context.sent; return _context.abrupt("return", _this.create(_rawTypes.generatedMaps[0])); case 18: _context.next = 20; return queryBuilder.returning("*").execute(); case 20: rawTypes = _context.sent; return _context.abrupt("return", _this.create(rawTypes.generatedMaps[0])); case 22: case "end": return _context.stop(); } }, _callee); }))(); } }); var _default = exports["default"] = ReferenceConditionRepository;