UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

149 lines (148 loc) 4.73 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.OperationJSONAdapter = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _constants = require("./constants"); var _opResult = require("./op-result"); function resolveOpResultValueReference(uow, value) { if (Array.isArray(value)) { return value.map(function (item) { return resolveOpResultValueReference(uow, item); }); } if (value && (0, _typeof2["default"])(value) === 'object') { if (value.___ref) { var opResult = uow.getOpResultById(value.opResultId); if (value.resultIndex !== undefined) { return opResult.resolveTo(value.resultIndex, value.propName); } if (value.propName !== undefined) { return opResult.resolveTo(value.propName); } return opResult; } var result = {}; for (var prop in value) { result[prop] = resolveOpResultValueReference(uow, value[prop]); } return result; } return value; } var OperationJSONAdapter = { CREATE: function CREATE(uow, _ref) { var table = _ref.table, payload = _ref.payload; return uow.create.call(uow, table, resolveOpResultValueReference(uow, payload)); }, DELETE: function DELETE(uow, _ref2) { var table = _ref2.table, payload = _ref2.payload; return uow["delete"].call(uow, table, resolveOpResultValueReference(uow, payload)); }, UPDATE: function UPDATE(uow, _ref3) { var table = _ref3.table, payload = _ref3.payload; return uow.update.call(uow, table, resolveOpResultValueReference(uow, payload)); }, UPSERT: function UPSERT(uow, _ref4) { var table = _ref4.table, payload = _ref4.payload; return uow.upsert.call(uow, table, resolveOpResultValueReference(uow, payload)); }, UPDATE_BULK: function UPDATE_BULK(uow, _ref5) { var table = _ref5.table, payload = _ref5.payload; var args = baseBulkArgs(uow, { table: table, payload: payload }); args.push(resolveOpResultValueReference(uow, payload.changes)); return uow.bulkUpdate.apply(uow, args); }, DELETE_BULK: function DELETE_BULK(uow, _ref6) { var table = _ref6.table, payload = _ref6.payload; var args = baseBulkArgs(uow, { table: table, payload: payload }); return uow.bulkDelete.apply(uow, args); }, CREATE_BULK: function CREATE_BULK(uow, _ref7) { var table = _ref7.table, payload = _ref7.payload; return uow.bulkCreate.call(uow, table, resolveOpResultValueReference(uow, payload)); }, UPSERT_BULK: function UPSERT_BULK(uow, _ref8) { var table = _ref8.table, payload = _ref8.payload; return uow.bulkUpsert.call(uow, table, resolveOpResultValueReference(uow, payload)); }, SET_RELATION: function SET_RELATION(uow, _ref9) { var table = _ref9.table, payload = _ref9.payload; return updateRelations(uow, 'setRelation', { table: table, payload: payload }); }, DELETE_RELATION: function DELETE_RELATION(uow, _ref10) { var table = _ref10.table, payload = _ref10.payload; return updateRelations(uow, 'deleteRelation', { table: table, payload: payload }); }, ADD_RELATION: function ADD_RELATION(uow, _ref11) { var table = _ref11.table, payload = _ref11.payload; return updateRelations(uow, 'addToRelation', { table: table, payload: payload }); }, FIND: function FIND(uow, _ref12) { var table = _ref12.table, payload = _ref12.payload; return uow.addOperations(_constants.OperationType.FIND, table, payload); } }; exports.OperationJSONAdapter = OperationJSONAdapter; function baseBulkArgs(uow, _ref13) { var table = _ref13.table, payload = _ref13.payload; var args = []; if (payload.conditional) { args.push(table); args.push(payload.conditional); } else { var opRef = resolveOpResultValueReference(uow, payload.unconditional); if (opRef instanceof _opResult.OpResult) { args.push(opRef); } else { args.push(table); args.push(opRef); } } return args; } function updateRelations(uow, method, _ref14) { var table = _ref14.table, payload = _ref14.payload; var args = [table]; if (typeof payload.parentObject === 'string') { args.push({ objectId: payload.parentObject }); } else { args.push(resolveOpResultValueReference(uow, payload.parentObject)); } args.push(payload.relationColumn); args.push(payload.conditional || resolveOpResultValueReference(uow, payload.unconditional)); return uow[method].apply(uow, args); }