@ai-ecom/medusa-plugin-patient-record
Version:
A plugin for patient record
82 lines (81 loc) • 3.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.SubUnitRepository = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _subUnit = require("../models/sub-unit");
var _database = require("@medusajs/medusa/dist/loaders/database");
var SubUnitRepository = exports.SubUnitRepository = _database.dataSource.getRepository(_subUnit.SubUnit).extend({
upsertSubUnit: function upsertSubUnit(subUnit) {
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 (!(!subUnit || !(subUnit !== null && subUnit !== void 0 && subUnit.title))) {
_context.next = 2;
break;
}
return _context.abrupt("return", null);
case 2:
_context.next = 4;
return _this.findOne({
where: [{
id: subUnit === null || subUnit === void 0 ? void 0 : subUnit.id
}, {
title: subUnit === null || subUnit === void 0 ? void 0 : subUnit.title
}]
});
case 4:
existing = _context.sent;
if (!existing) {
_context.next = 11;
break;
}
if (!(existing.id && subUnit.title && existing.title !== subUnit.title)) {
_context.next = 10;
break;
}
_context.next = 9;
return _this.save({
id: existing.id,
title: subUnit.title
});
case 9:
return _context.abrupt("return", _context.sent);
case 10:
return _context.abrupt("return", existing);
case 11:
created = _this.create({
id: subUnit.id,
title: subUnit.title
});
queryBuilder = _this.createQueryBuilder().insert().into(_subUnit.SubUnit).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"] = SubUnitRepository;