UNPKG

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

Version:

A plugin for patient record

415 lines (414 loc) 19.9 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 _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 = ["values", "unit"]; 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; } 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 ReferenceService = /*#__PURE__*/function (_TransactionBaseServi) { function ReferenceService(_ref) { var _this; var referenceRepository = _ref.referenceRepository, referenceValueRepository = _ref.referenceValueRepository, eventBusService = _ref.eventBusService; (0, _classCallCheck2["default"])(this, ReferenceService); // eslint-disable-next-line prefer-rest-params _this = _callSuper(this, ReferenceService, [arguments[0]]); _this.referenceRepository_ = referenceRepository; _this.referenceValueRepository_ = referenceValueRepository; _this.eventBusService_ = eventBusService; return _this; } (0, _inherits2["default"])(ReferenceService, _TransactionBaseServi); return (0, _createClass2["default"])(ReferenceService, [{ key: "list", value: function () { var _list = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selector) { var config, _yield$this$listAndCo, _yield$this$listAndCo2, reference, _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); reference = _yield$this$listAndCo2[0]; return _context.abrupt("return", reference); 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, referenceRepo, 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: [] }; referenceRepo = this.activeManager_.withRepository(this.referenceRepository_); query = (0, _medusa.buildQuery)(selector, config); return _context2.abrupt("return", referenceRepo.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(referenceId, config) { var reference; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this.retrieve_({ id: referenceId }, config); case 2: reference = _context3.sent; if (reference) { _context3.next = 5; break; } throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.NOT_FOUND, "Reference with ".concat(referenceId, " was not found")); case 5: return _context3.abrupt("return", reference); case 6: case "end": return _context3.stop(); } }, _callee3, this); })); function retrieve(_x3, _x4) { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "retrieveByExaminationResultTitleId", value: function () { var _retrieveByExaminationResultTitleId = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(examinationTitleId, config) { var reference; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this.retrieve_({ examination_result_title_id: examinationTitleId }, config); case 2: reference = _context4.sent; if (reference) { _context4.next = 5; break; } throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.NOT_FOUND, "Reference with examination_result_title_id ".concat(examinationTitleId, " was not found")); case 5: return _context4.abrupt("return", reference); case 6: case "end": return _context4.stop(); } }, _callee4, this); })); function retrieveByExaminationResultTitleId(_x5, _x6) { return _retrieveByExaminationResultTitleId.apply(this, arguments); } return retrieveByExaminationResultTitleId; }() }, { key: "retrieve_", value: function () { var _retrieve_ = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(selector, config) { var referenceRepo, query, reference; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: referenceRepo = this.activeManager_.withRepository(this.referenceRepository_); query = (0, _medusa.buildQuery)(selector, config); _context5.next = 4; return referenceRepo.findOne(query); case 4: reference = _context5.sent; return _context5.abrupt("return", reference); case 6: case "end": return _context5.stop(); } }, _callee5, this); })); function retrieve_(_x7, _x8) { return _retrieve_.apply(this, arguments); } return retrieve_; }() }, { key: "create", value: function () { var _create = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(referenceObject) { var _this2 = this; var config, _args7 = arguments; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: config = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : { emitTransaction: true, customManager: null }; _context7.next = 3; return this.atomicPhase_( /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(createManager) { var _config$customManager; var manager, referenceRepo, referenceValueRepo, values, unit, rest, reference, orderValues, result; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: manager = (_config$customManager = config === null || config === void 0 ? void 0 : config.customManager) !== null && _config$customManager !== void 0 ? _config$customManager : createManager; referenceRepo = manager.withRepository(_this2.referenceRepository_); referenceValueRepo = manager.withRepository(_this2.referenceValueRepository_); values = referenceObject.values, unit = referenceObject.unit, rest = (0, _objectWithoutProperties2["default"])(referenceObject, _excluded); _context6.prev = 4; reference = referenceRepo.create(rest); if (values) { reference.values = []; orderValues = 0; values.map(function (value) { var createReferenceValue = referenceValueRepo.create(_objectSpread(_objectSpread({}, value), {}, { order: orderValues })); reference.values.push(createReferenceValue); orderValues++; }); } _context6.next = 9; return referenceRepo.save(reference); case 9: reference = _context6.sent; _context6.next = 12; return _this2.retrieve(reference.id, { relations: ["values"] }); case 12: result = _context6.sent; if (!(config !== null && config !== void 0 && config.emitTransaction)) { _context6.next = 16; break; } _context6.next = 16; return _this2.eventBusService_.withTransaction(manager).emit(ReferenceService.Events.CREATED, { id: result.id }); case 16: return _context6.abrupt("return", result); case 19: _context6.prev = 19; _context6.t0 = _context6["catch"](4); throw (0, _medusa.formatException)(_context6.t0); case 22: case "end": return _context6.stop(); } }, _callee6, null, [[4, 19]]); })); return function (_x10) { return _ref2.apply(this, arguments); }; }()); case 3: return _context7.abrupt("return", _context7.sent); case 4: case "end": return _context7.stop(); } }, _callee7, this); })); function create(_x9) { return _create.apply(this, arguments); } return create; }() }, { key: "delete", value: function () { var _delete2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(referenceId) { var _this3 = this; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: _context9.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(manager) { var referenceRepo, reference; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: referenceRepo = manager.withRepository(_this3.referenceRepository_); _context8.next = 3; return referenceRepo.findOne({ where: { id: referenceId } }); case 3: reference = _context8.sent; if (reference) { _context8.next = 6; break; } return _context8.abrupt("return"); case 6: _context8.next = 8; return referenceRepo.softRemove(reference); case 8: _context8.next = 10; return _this3.eventBusService_.withTransaction(manager).emit(ReferenceService.Events.DELETED, { id: referenceId }); case 10: return _context8.abrupt("return", Promise.resolve()); case 11: case "end": return _context8.stop(); } }, _callee8); })); return function (_x12) { return _ref3.apply(this, arguments); }; }()); case 2: return _context9.abrupt("return", _context9.sent); case 3: case "end": return _context9.stop(); } }, _callee9, this); })); function _delete(_x11) { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "update", value: function () { var _update2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(referenceId, _update) { var _this4 = this; return _regenerator["default"].wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: _context11.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(manager) { var referenceRepo, reference, rest, _i, _Object$entries, _Object$entries$_i, key, value, result; return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: referenceRepo = manager.withRepository(_this4.referenceRepository_); _context10.next = 3; return _this4.retrieve(referenceId, {}); case 3: reference = _context10.sent; rest = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_update), _update)); 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") { reference[key] = value; } } _context10.next = 8; return referenceRepo.save(reference); case 8: result = _context10.sent; _context10.next = 11; return _this4.eventBusService_.withTransaction(manager).emit(ReferenceService.Events.UPDATED, { id: result.id, fields: Object.keys(_update) }); case 11: return _context10.abrupt("return", result); case 12: case "end": return _context10.stop(); } }, _callee10); })); return function (_x15) { return _ref4.apply(this, arguments); }; }()); case 2: return _context11.abrupt("return", _context11.sent); case 3: case "end": return _context11.stop(); } }, _callee11, this); })); function update(_x13, _x14) { return _update2.apply(this, arguments); } return update; }() }]); }(_medusa.TransactionBaseService); (0, _defineProperty2["default"])(ReferenceService, "IndexName", "references"); (0, _defineProperty2["default"])(ReferenceService, "Events", { UPDATED: "reference.updated", CREATED: "reference.created", DELETED: "reference.deleted" }); var _default = exports["default"] = ReferenceService;