importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_sol.common.ObjectUtils.js //@include lib_sol.common.RepoUtils.js //@include lib_sol.common.HttpUtils.js //@include lib_sol.common.ix.ServiceBase.js var logger = sol.create("sol.Logger", { scope: "sol.common.ix.services.BLPProjects" }); /** * This service returns all the projects of a BLP server. * * @author ELO Digital Office GmbH * @version 1.13.000 * * @eloix * @requires sol.common.ObjectUtils * @requires sol.common.JsonUtils * @requires sol.common.SordUtils * @requires sol.common.RepoUtils * @requires sol.common.ix.RfUtils * @requires sol.common.ix.ServiceBase */ sol.define("sol.common.ix.services.BLPProjects", { extend: "sol.common.ix.ServiceBase", requiredConfig: ["serverUrl", "appToken"], /** * @cfg {String} $serverUrl Url of the BLP server (http://<IPAdress>:<Port>) * @cfg {String} $appToken Encrypted app token */ /** * Performes the checks and retrieves the data as spezified in the configuration. * @returns {Object} */ process: function () { var me = this; return me.getBLPProjects(me.serverUrl, me.appToken); }, /** * Collects the types and stores them to `_types`. */ getBLPProjects: function (serverUrl, appToken) { var me = this, url; url = serverUrl + "/api/v1/project"; request = me.sendBLPRequest(url, appToken, "GET"); if (!request || !request.projects) { throw Error("No projects returned. Content: " + JSON.stringify(request)); } return request.projects; }, /** * @private * Retrieves a list of all projects of a BLP server. * @return {[]} */ sendBLPRequest: function (url, appToken, method, data) { var me = this, responseObj, results, des, decryptedAppToken; logger.enter("sendBLPRequest", url); des = new Packages.de.elo.utils.sec.DesEncryption(); decryptedAppToken = des.decrypt(appToken); requestProperties = { Authorization: "Bearer " + decryptedAppToken }; responseObj = sol.common.HttpUtils.sendRequest({ url: url, method: method, connectTimeout: 10000, readTimeout: 60000, dataObj: data, encodeData: false, requestProperties: requestProperties }); try { results = JSON.parse(responseObj.content); } catch (e) { return null; } logger.exit("sendBLPRequest"); return results; } }); /** * @member sol.common.ix.services.BLPProjects * @method BLPProjects * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_common_service_BLPProjects(ec, args) { var config, service, result; logger.enter("RF_sol_common_service_BLPProjects", args); config = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "serverUrl", "appToken"); config.ci = ec.ci; config.user = ec.user; service = sol.create("sol.common.ix.services.BLPProjects", config); result = sol.common.ix.RfUtils.stringify(service.process()); logger.exit("RF_sol_common_service_BLPProjects", result); return result; }