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