@ai-ecom/medusa-plugin-patient-record
Version:
A plugin for patient record
119 lines (118 loc) • 5.59 kB
JavaScript
;
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;