UNPKG

backendless-console-sdk

Version:

Backendless Console SDK for Node.js and browser

302 lines (297 loc) 14.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _each2 = _interopRequireDefault(require("lodash/each")); var _urls = _interopRequireDefault(require("./urls")); var _cacheTags = require("./utils/cache-tags"); var _path = require("./utils/path"); var _excluded = ["paths"], _excluded2 = ["id"], _excluded3 = ["category", "mode"]; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var hostedServices = function hostedServices(appId) { return "".concat(_urls["default"].blBasePath(appId), "/generic"); }; var codelessServices = function codelessServices(appId) { return "".concat(_urls["default"].blBasePath(appId), "/codeless"); }; var jsServices = function jsServices(appId) { return "".concat(_urls["default"].blBasePath(appId), "/js"); }; var marketplaceServices = function marketplaceServices(appId) { return "".concat(_urls["default"].blBasePath(appId), "/marketplace"); }; var hostedServiceConfig = function hostedServiceConfig(appId, serviceId) { return "".concat(hostedServices(appId), "/configure/").concat(serviceId); }; var marketplaceServiceConfig = function marketplaceServiceConfig(appId, serviceName, modelName) { return "".concat(marketplaceServices(appId), "/configure/").concat(modelName, "/").concat(serviceName); }; var MODES = { MARKETPLACE: 'MARKETPLACE', PROD: 'PRODUCTION', DEBUG: 'DEBUG', DRAFT: 'DRAFT' }; // TODO: remove this transformation when the format of config will be changed [CONSOLE-599] var CONFIG_NAMES_MAP = { displayName: 'label' }; // TODO: remove this transformation when the format of config will be changed [CONSOLE-599] var normalizeService = function normalizeService(service) { if (service.configuration) { service.configDescriptions = service.configuration.map(normalizeServiceConfigDescription); delete service.configuration; } return service; }; // TODO: remove this transformation when the format of config will be changes [CONSOLE-599] var normalizeServiceConfigDescription = function normalizeServiceConfigDescription(configDescription) { for (var key in configDescription) { var normalizeName = CONFIG_NAMES_MAP[key]; if (normalizeName) { configDescription[normalizeName] = configDescription[key]; delete configDescription[key]; } } return configDescription; }; var parseServiceSpec = function parseServiceSpec(spec) { var paths = spec.paths, summary = (0, _objectWithoutProperties2["default"])(spec, _excluded); var methods = {}; (0, _each2["default"])(paths, function (pathBody, path) { (0, _each2["default"])(pathBody, function (methodBody, type) { var id = methodBody.operationId; methods[id] = _objectSpread(_objectSpread({}, methodBody), {}, { path: path, type: type, id: id }); }); }); return { summary: summary, methods: methods }; }; var normalizeHandler = function normalizeHandler(handler) { if (handler.mode === MODES.MARKETPLACE) { handler.mode = MODES.PROD; handler.fromMarketplace = true; } return handler; }; var normalizeHandlers = function normalizeHandlers(handlers) { return handlers.map(normalizeHandler); }; var _default = function _default(req) { return { getServices: function getServices(appId) { return req.get(_urls["default"].blBasePath(appId)).then(function (services) { return services.map(normalizeService); }); // TODO: remove this transformation when the format of config will be changes [CONSOLE-599] }, getServiceSpec: function getServiceSpec(appId, serviceId) { var transformSpec = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var result = req.get("".concat(_urls["default"].blBasePath(appId), "/").concat(serviceId, "/api-docs")); if (transformSpec) { return result.then(parseServiceSpec); } return result; }, getServiceMethods: function getServiceMethods(appId, serviceId) { return req.get("".concat(_urls["default"].blBasePath(appId), "/").concat(serviceId, "/methods")); }, importService: function importService(appId, _ref) { var service = _ref.service, serviceURL = _ref.serviceURL, file = _ref.file; var data; if (file) { data = new FormData(); data.append('file', file); } else { data = service ? { appId: appId, service: service } : { serviceURL: serviceURL }; } return req.post("".concat(_urls["default"].blBasePath(appId), "/import"), data); }, createService: function createService(appId, data) { var formData = data; if (!data.createFromSample) { formData = new FormData(); formData.append('files', data.file); formData.append('createFromSample', false); formData.append('model', data.model); } return req.post("".concat(_urls["default"].blBasePath(appId), "/generic"), formData).then(function (services) { return services.map(normalizeService); }); // TODO: remove this transformation when the format of config will be changed [CONSOLE-599] }, createAWSLambdaService: function createAWSLambdaService(appId, credentials) { return req.post("".concat(_urls["default"].blBasePath(appId), "/aws-lambda"), _objectSpread(_objectSpread({}, credentials), {}, { appId: appId })); }, createCodelessService: function createCodelessService(appId, service) { return req.post(codelessServices(appId), service).cacheTags((0, _cacheTags.BL_MODELS)(appId, 'CODELESS')); }, createJsService: function createJsService(appId, service) { return req.post(jsServices(appId), service).cacheTags((0, _cacheTags.BL_MODELS)(appId, 'JS')); }, updateCodelessService: function updateCodelessService(appId, serviceId, updates) { return req.put("".concat(codelessServices(appId), "/").concat(serviceId), updates); }, deleteCodelessService: function deleteCodelessService(appId, serviceId) { return req["delete"]("".concat(codelessServices(appId), "/").concat(serviceId)); }, createCodelessMethod: function createCodelessMethod(appId, serviceId, method) { return req.post("".concat(codelessServices(appId), "/").concat(serviceId, "/"), method); }, updateCodelessMethod: function updateCodelessMethod(appId, serviceId, methodId, method) { return req.put("".concat(codelessServices(appId), "/").concat(serviceId, "/").concat(methodId), method); }, deleteCodelessMethod: function deleteCodelessMethod(appId, serviceId, methodId) { return req["delete"]("".concat(codelessServices(appId), "/").concat(serviceId, "/").concat(methodId)); }, getCodelessMethodLogic: function getCodelessMethodLogic(appId, serviceId, methodId) { return req.get("".concat(codelessServices(appId), "/").concat(serviceId, "/").concat(methodId, "/logic")); }, deployCodelessMethodLogic: function deployCodelessMethodLogic(appId, serviceId, methodId, logic, params) { return req.put("".concat(codelessServices(appId), "/").concat(serviceId, "/").concat(methodId, "/logic"), logic).query(params); }, deleteService: function deleteService(appId, serviceId) { return req["delete"](hostedServices(appId), [serviceId]); }, updateService: function updateService(appId, serviceId, updates) { return req.put("".concat(hostedServices(appId), "/").concat(serviceId, "/update"), updates); }, updateServiceDefaultModel: function updateServiceDefaultModel(appId, updates) { return req.put("".concat(_urls["default"].blBasePath(appId), "/default-model"), updates); }, loadServiceConfig: function loadServiceConfig(appId, serviceId) { return req.get(hostedServiceConfig(appId, serviceId)); }, setServiceConfig: function setServiceConfig(appId, serviceId, config) { return req.post(hostedServiceConfig(appId, serviceId), config); }, setMarketplaceServiceConfig: function setMarketplaceServiceConfig(appId, serviceName, modelName, config) { return req.post(marketplaceServiceConfig(appId, serviceName, modelName), config); }, testServiceConfig: function testServiceConfig(appId, serviceId, config) { return req.post(hostedServiceConfig(appId, "test/".concat(serviceId)), config); }, getDraftFiles: function getDraftFiles(appId, language, model) { return req.get(_urls["default"].blDraft(appId, language, model)); }, saveDraftFiles: function saveDraftFiles(appId, language, model, files) { var sync = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; var encodedFiles = files.map(function (_ref2) { var id = _ref2.id, rest = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2); return _objectSpread({ id: (0, _path.encodePath)(id) }, rest); }); return req.put(_urls["default"].blDraft(appId, language, model), encodedFiles).query({ sync: sync }); }, deployDraftFiles: function deployDraftFiles(appId, language, model, files) { var sync = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; return req.put(_urls["default"].blProd(appId, language, model), files).query({ sync: sync }); }, getDraftFileContent: function getDraftFileContent(appId, language, model, fileId) { return req.get("".concat(_urls["default"].blDraft(appId, language, model), "/").concat((0, _path.encodePath)(fileId))); }, getLanguages: function getLanguages() { return req.get("".concat(_urls["default"].console(), "/servercode/languages")); }, getModels: function getModels(appId, language) { return req.get("".concat(_urls["default"].serverCode(appId), "/models/").concat(language)).cacheTags((0, _cacheTags.BL_MODELS)(appId, language)); }, getAllModels: function getAllModels(appId) { return req.get("".concat(_urls["default"].serverCode(appId), "/models")); }, createModel: function createModel(appId, language, model) { var data = { appId: appId, language: language, model: model }; return req.post("".concat(_urls["default"].serverCode(appId), "/models/create"), data); }, createEventHandler: function createEventHandler(appId, handler) { var category = handler.category, mode = handler.mode, data = (0, _objectWithoutProperties2["default"])(handler, _excluded3); return req.post(_urls["default"].blHandlersCategory(appId, mode, category), data).cacheTags((0, _cacheTags.BL_MODELS)(appId, handler.language)); }, updateEventHandler: function updateEventHandler(appId, handler) { var id = handler.id, category = handler.category, fromMarketplace = handler.fromMarketplace; if (fromMarketplace) { handler.mode = MODES.MARKETPLACE; } var url = "".concat(_urls["default"].blHandlersCategory(appId, handler.mode, category), "/").concat(id); return req.put(url, handler).then(normalizeHandler); }, getEventHandlers: function getEventHandlers(appId) { var modes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; return req.get(_urls["default"].serverCode(appId)).query({ mode: modes }).then(normalizeHandlers); }, deleteEventHandler: function deleteEventHandler(appId, handler) { var id = handler.id, mode = handler.mode, category = handler.category; var url = "".concat(_urls["default"].blHandlersCategory(appId, mode, category), "/").concat(id); return req["delete"](url); }, getHandlerInvocationChain: function getHandlerInvocationChain(appId, eventId, context) { return req.get(_urls["default"].blHandlersChain(appId, eventId, context)).cacheTags((0, _cacheTags.BL_CHAIN)(appId, eventId, context)); }, updateHandlerInvocationChain: function updateHandlerInvocationChain(appId, eventId, context, updates) { return req.put(_urls["default"].blHandlersChain(appId, eventId, context), updates).cacheTags((0, _cacheTags.BL_CHAIN)(appId, eventId, context)); }, invokeTimer: function invokeTimer(appId, timer) { var timername = timer.timername, mode = timer.mode, category = timer.category; //POST /:applicationId/console/servercode/:mode/timers/:timerName/run return req.post("".concat(_urls["default"].blHandlersCategory(appId, mode, category), "/").concat(timername, "/run")); }, changeHandlerState: function changeHandlerState(appId, mode, category, timerId, enabled) { return req.put("".concat(_urls["default"].blHandlersCategory(appId, mode, category), "/").concat(timerId, "/state"), { enabled: enabled }); }, getCategories: function getCategories(appId) { return req.get("".concat(_urls["default"].serverCode(appId), "/categories")); }, getEvents: function getEvents(appId) { return req.get("".concat(_urls["default"].serverCode(appId), "/events")); }, getTimerLogs: function getTimerLogs(appId, query) { return req.get("".concat(_urls["default"].serverCode(appId), "/timers/logs")).query(query); } }; }; exports["default"] = _default;