backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
302 lines (297 loc) • 14.5 kB
JavaScript
;
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;