UNPKG

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

Version:

A plugin for patient record

495 lines (494 loc) 22.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _medusa = require("@medusajs/medusa"); var _medusaCoreUtils = require("medusa-core-utils"); var _excluded = ["denominator", "nominator"], _excluded2 = ["nominator", "denominator"]; function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var UnitService = /*#__PURE__*/function (_TransactionBaseServi) { function UnitService(_ref) { var _this; var unitRepository = _ref.unitRepository, subUnitRepository = _ref.subUnitRepository, eventBusService = _ref.eventBusService; (0, _classCallCheck2["default"])(this, UnitService); // eslint-disable-next-line prefer-rest-params _this = _callSuper(this, UnitService, [arguments[0]]); _this.unitRepository_ = unitRepository; _this.subUnitRepository_ = subUnitRepository; _this.eventBus_ = eventBusService; return _this; } (0, _inherits2["default"])(UnitService, _TransactionBaseServi); return (0, _createClass2["default"])(UnitService, [{ key: "list", value: function () { var _list = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selector) { var config, _yield$this$listAndCo, _yield$this$listAndCo2, unit, _args = arguments; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: config = _args.length > 1 && _args[1] !== undefined ? _args[1] : { skip: 0, take: 50, relations: [] }; _context.next = 3; return this.listAndCount(selector, config); case 3: _yield$this$listAndCo = _context.sent; _yield$this$listAndCo2 = (0, _slicedToArray2["default"])(_yield$this$listAndCo, 1); unit = _yield$this$listAndCo2[0]; return _context.abrupt("return", unit); case 7: case "end": return _context.stop(); } }, _callee, this); })); function list(_x) { return _list.apply(this, arguments); } return list; }() }, { key: "listAndCount", value: function () { var _listAndCount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(selector) { var config, unitRepo, query, _args2 = arguments; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: config = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : { skip: 0, take: 50, relations: [] }; unitRepo = this.activeManager_.withRepository(this.unitRepository_); query = (0, _medusa.buildQuery)(selector, config); return _context2.abrupt("return", unitRepo.findAndCount(query)); case 4: case "end": return _context2.stop(); } }, _callee2, this); })); function listAndCount(_x2) { return _listAndCount.apply(this, arguments); } return listAndCount; }() }, { key: "retrieve", value: function () { var _retrieve = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(unitId, config) { var unit; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this.retrieve_({ id: unitId }, config); case 2: unit = _context3.sent; if (unit) { _context3.next = 5; break; } throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.NOT_FOUND, "Unit with ".concat(unitId, " was not found")); case 5: return _context3.abrupt("return", unit); case 6: case "end": return _context3.stop(); } }, _callee3, this); })); function retrieve(_x3, _x4) { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "retrieve_", value: function () { var _retrieve_ = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(selector, config) { var unitRepo, query, unit; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: unitRepo = this.activeManager_.withRepository(this.unitRepository_); query = (0, _medusa.buildQuery)(selector, config); _context4.next = 4; return unitRepo.findOne(query); case 4: unit = _context4.sent; return _context4.abrupt("return", unit); case 6: case "end": return _context4.stop(); } }, _callee4, this); })); function retrieve_(_x5, _x6) { return _retrieve_.apply(this, arguments); } return retrieve_; }() }, { key: "create", value: function () { var _create = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(unitObject) { var _this2 = this; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(manager) { var unitRepo, subUnitRepo, denominator, nominator, rest, unit, _yield$subUnitRepo$up, _yield$subUnitRepo$up2, result; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: unitRepo = manager.withRepository(_this2.unitRepository_); subUnitRepo = manager.withRepository(_this2.subUnitRepository_); _context5.prev = 2; denominator = unitObject.denominator, nominator = unitObject.nominator, rest = (0, _objectWithoutProperties2["default"])(unitObject, _excluded); unit = unitRepo.create(rest); if (!((0, _typeof2["default"])(nominator) !== "undefined")) { _context5.next = 21; break; } _context5.next = 8; return subUnitRepo.upsertSubUnit(nominator); case 8: _context5.t2 = _yield$subUnitRepo$up = _context5.sent; _context5.t1 = _context5.t2 === null; if (_context5.t1) { _context5.next = 12; break; } _context5.t1 = _yield$subUnitRepo$up === void 0; case 12: if (!_context5.t1) { _context5.next = 16; break; } _context5.t3 = void 0; _context5.next = 17; break; case 16: _context5.t3 = _yield$subUnitRepo$up.id; case 17: _context5.t0 = _context5.t3; if (_context5.t0) { _context5.next = 20; break; } _context5.t0 = null; case 20: unit.nominator_id = _context5.t0; case 21: if (!((0, _typeof2["default"])(denominator) !== "undefined")) { _context5.next = 37; break; } _context5.next = 24; return subUnitRepo.upsertSubUnit(denominator); case 24: _context5.t6 = _yield$subUnitRepo$up2 = _context5.sent; _context5.t5 = _context5.t6 === null; if (_context5.t5) { _context5.next = 28; break; } _context5.t5 = _yield$subUnitRepo$up2 === void 0; case 28: if (!_context5.t5) { _context5.next = 32; break; } _context5.t7 = void 0; _context5.next = 33; break; case 32: _context5.t7 = _yield$subUnitRepo$up2.id; case 33: _context5.t4 = _context5.t7; if (_context5.t4) { _context5.next = 36; break; } _context5.t4 = null; case 36: unit.denominator_id = _context5.t4; case 37: _context5.next = 39; return unitRepo.save(unit); case 39: unit = _context5.sent; _context5.next = 42; return _this2.retrieve(unit.id, { relations: [] }); case 42: result = _context5.sent; _context5.next = 45; return _this2.eventBus_.withTransaction(manager).emit(UnitService.Events.CREATED, { id: result.id }); case 45: return _context5.abrupt("return", result); case 48: _context5.prev = 48; _context5.t8 = _context5["catch"](2); throw (0, _medusa.formatException)(_context5.t8); case 51: case "end": return _context5.stop(); } }, _callee5, null, [[2, 48]]); })); return function (_x8) { return _ref2.apply(this, arguments); }; }()); case 2: return _context6.abrupt("return", _context6.sent); case 3: case "end": return _context6.stop(); } }, _callee6, this); })); function create(_x7) { return _create.apply(this, arguments); } return create; }() }, { key: "delete", value: function () { var _delete2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(unitId) { var _this3 = this; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(manager) { var unitRepo, unit; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: unitRepo = manager.withRepository(_this3.unitRepository_); _context7.next = 3; return unitRepo.findOne({ where: { id: unitId }, relations: [] }); case 3: unit = _context7.sent; if (unit) { _context7.next = 6; break; } return _context7.abrupt("return"); case 6: _context7.next = 8; return unitRepo.softRemove(unit); case 8: _context7.next = 10; return _this3.eventBus_.withTransaction(manager).emit(UnitService.Events.DELETED, { id: unitId }); case 10: return _context7.abrupt("return", Promise.resolve()); case 11: case "end": return _context7.stop(); } }, _callee7); })); return function (_x10) { return _ref3.apply(this, arguments); }; }()); case 2: return _context8.abrupt("return", _context8.sent); case 3: case "end": return _context8.stop(); } }, _callee8, this); })); function _delete(_x9) { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "update", value: function () { var _update2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(unitId, _update) { var _this4 = this; return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(manager) { var unitRepo, subUnitRepo, unit, nominator, denominator, rest, _yield$subUnitRepo$up3, _yield$subUnitRepo$up4, _i, _Object$entries, _Object$entries$_i, key, value, result; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: unitRepo = manager.withRepository(_this4.unitRepository_); subUnitRepo = manager.withRepository(_this4.subUnitRepository_); _context9.next = 4; return _this4.retrieve(unitId, {}); case 4: unit = _context9.sent; nominator = _update.nominator, denominator = _update.denominator, rest = (0, _objectWithoutProperties2["default"])(_update, _excluded2); if (!((0, _typeof2["default"])(nominator) !== "undefined")) { _context9.next = 22; break; } _context9.next = 9; return subUnitRepo.upsertSubUnit(nominator); case 9: _context9.t2 = _yield$subUnitRepo$up3 = _context9.sent; _context9.t1 = _context9.t2 === null; if (_context9.t1) { _context9.next = 13; break; } _context9.t1 = _yield$subUnitRepo$up3 === void 0; case 13: if (!_context9.t1) { _context9.next = 17; break; } _context9.t3 = void 0; _context9.next = 18; break; case 17: _context9.t3 = _yield$subUnitRepo$up3.id; case 18: _context9.t0 = _context9.t3; if (_context9.t0) { _context9.next = 21; break; } _context9.t0 = null; case 21: unit.nominator_id = _context9.t0; case 22: if (!((0, _typeof2["default"])(denominator) !== "undefined")) { _context9.next = 38; break; } _context9.next = 25; return subUnitRepo.upsertSubUnit(denominator); case 25: _context9.t6 = _yield$subUnitRepo$up4 = _context9.sent; _context9.t5 = _context9.t6 === null; if (_context9.t5) { _context9.next = 29; break; } _context9.t5 = _yield$subUnitRepo$up4 === void 0; case 29: if (!_context9.t5) { _context9.next = 33; break; } _context9.t7 = void 0; _context9.next = 34; break; case 33: _context9.t7 = _yield$subUnitRepo$up4.id; case 34: _context9.t4 = _context9.t7; if (_context9.t4) { _context9.next = 37; break; } _context9.t4 = null; case 37: unit.denominator_id = _context9.t4; case 38: for (_i = 0, _Object$entries = Object.entries(rest); _i < _Object$entries.length; _i++) { _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; if ((0, _typeof2["default"])(value) !== "undefined") { unit[key] = value; } } _context9.next = 41; return unitRepo.save(unit); case 41: result = _context9.sent; _context9.next = 44; return _this4.eventBus_.withTransaction(manager).emit(UnitService.Events.UPDATED, { id: result.id, fields: Object.keys(_update) }); case 44: return _context9.abrupt("return", result); case 45: case "end": return _context9.stop(); } }, _callee9); })); return function (_x13) { return _ref4.apply(this, arguments); }; }()); case 2: return _context10.abrupt("return", _context10.sent); case 3: case "end": return _context10.stop(); } }, _callee10, this); })); function update(_x11, _x12) { return _update2.apply(this, arguments); } return update; }() }]); }(_medusa.TransactionBaseService); (0, _defineProperty2["default"])(UnitService, "IndexName", "units"); (0, _defineProperty2["default"])(UnitService, "Events", { UPDATED: "unit.updated", CREATED: "unit.created", DELETED: "unit.deleted" }); var _default = exports["default"] = UnitService;