@ai-ecom/medusa-plugin-patient-record
Version:
A plugin for patient record
128 lines (127 loc) • 6.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.MediaRepository = 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 _media = require("../models/media");
var _database = require("@medusajs/medusa/dist/loaders/database");
var _medusa = require("@medusajs/medusa");
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 MediaRepository = exports.MediaRepository = _database.dataSource.getRepository(_media.Media).extend({
insertBulk: function insertBulk(data) {
var _this = this;
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var queryBuilder, _rawTags, rawTags;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
queryBuilder = _this.createQueryBuilder().insert().into(_media.Media).values(data);
if (queryBuilder.connection.driver.isReturningSqlSupported("insert")) {
_context.next = 6;
break;
}
_context.next = 4;
return queryBuilder.execute();
case 4:
_rawTags = _context.sent;
return _context.abrupt("return", _rawTags.generatedMaps.map(function (d) {
return _this.create(d);
}));
case 6:
_context.next = 8;
return queryBuilder.returning("*").execute();
case 8:
rawTags = _context.sent;
return _context.abrupt("return", rawTags.generatedMaps.map(function (d) {
return _this.create(d);
}));
case 10:
case "end":
return _context.stop();
}
}, _callee);
}))();
},
upsertMedia: function upsertMedia(media) {
var _this2 = this;
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
var existing, created, queryBuilder, _rawTypes, rawTypes;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
if (media) {
_context2.next = 2;
break;
}
return _context2.abrupt("return", null);
case 2:
if (!media.url) {
_context2.next = 12;
break;
}
_context2.next = 5;
return _this2.findOne({
where: {
url: media.url
}
});
case 5:
existing = _context2.sent;
if (!existing) {
_context2.next = 12;
break;
}
if (!(existing.id && media.title && ((existing === null || existing === void 0 ? void 0 : existing.hint) !== media.hint || (existing === null || existing === void 0 ? void 0 : existing.title) !== media.title || (existing === null || existing === void 0 ? void 0 : existing.type) !== media.type || (existing === null || existing === void 0 ? void 0 : existing.url) !== media.url || (existing === null || existing === void 0 ? void 0 : existing.metadata) !== media.metadata))) {
_context2.next = 11;
break;
}
_context2.next = 10;
return _this2.save(_objectSpread(_objectSpread({}, existing), {}, {
hint: media.hint,
title: media.title,
type: media.type,
url: media.url,
metadata: media !== null && media !== void 0 && media.metadata ? (0, _medusa.setMetadata)(existing, media === null || media === void 0 ? void 0 : media.metadata) : existing === null || existing === void 0 ? void 0 : existing.metadata
}));
case 10:
return _context2.abrupt("return", _context2.sent);
case 11:
return _context2.abrupt("return", existing);
case 12:
created = _this2.create({
hint: media.hint,
title: media.title,
type: media.type,
url: media.url,
metadata: media.metadata
});
queryBuilder = _this2.createQueryBuilder().insert().into(_media.Media).values(created);
if (queryBuilder.connection.driver.isReturningSqlSupported("insert")) {
_context2.next = 19;
break;
}
_context2.next = 17;
return queryBuilder.execute();
case 17:
_rawTypes = _context2.sent;
return _context2.abrupt("return", _this2.create(_rawTypes.generatedMaps[0]));
case 19:
_context2.next = 21;
return queryBuilder.returning("*").execute();
case 21:
rawTypes = _context2.sent;
return _context2.abrupt("return", _this2.create(rawTypes.generatedMaps[0]));
case 23:
case "end":
return _context2.stop();
}
}, _callee2);
}))();
}
});
var _default = exports["default"] = MediaRepository;