GSI - Employe Self Service Mobile
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

127 lines
3.8 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.variables = exports.configs = void 0;
const _ = require("lodash");
const api_1 = require("../api");
const apiv2_1 = require("../apiv2");
const logger_1 = require("../logger");
const API_VERSION = "v1beta1";
const apiClient = new apiv2_1.Client({ urlPrefix: api_1.runtimeconfigOrigin, apiVersion: API_VERSION });
function listConfigs(projectId) {
return apiClient
.get(`/projects/${projectId}/configs`, {
retryCodes: [500, 503],
})
.then((resp) => resp.body.configs);
}
function createConfig(projectId, configId) {
const path = ["projects", projectId, "configs"].join("/");
return apiClient
.post(`/projects/${projectId}/configs`, {
name: path + "/" + configId,
}, {
retryCodes: [500, 503],
})
.catch((err) => {
if (_.get(err, "context.response.statusCode") === 409) {
return Promise.resolve();
}
return Promise.reject(err);
});
}
function deleteConfig(projectId, configId) {
return apiClient
.delete(`/projects/${projectId}/configs/${configId}`, {
retryCodes: [500, 503],
})
.catch((err) => {
if (_.get(err, "context.response.statusCode") === 404) {
logger_1.logger.debug("Config already deleted.");
return Promise.resolve();
}
throw err;
});
}
function listVariables(configPath) {
return apiClient
.get(`${configPath}/variables`, {
retryCodes: [500, 503],
})
.then((resp) => {
return Promise.resolve(resp.body.variables || []);
});
}
function getVariable(varPath) {
return apiClient
.get(varPath, {
retryCodes: [500, 503],
})
.then((resp) => {
return Promise.resolve(resp.body);
});
}
function createVariable(projectId, configId, varId, value) {
const path = `/projects/${projectId}/configs/${configId}/variables`;
return apiClient
.post(path, {
name: `${path}/${varId}`,
text: value,
}, {
retryCodes: [500, 503],
})
.catch((err) => {
if (_.get(err, "context.response.statusCode") === 404) {
return createConfig(projectId, configId).then(() => {
return createVariable(projectId, configId, varId, value);
});
}
return Promise.reject(err);
});
}
function updateVariable(projectId, configId, varId, value) {
const path = `/projects/${projectId}/configs/${configId}/variables/${varId}`;
return apiClient.put(path, {
name: path,
text: value,
}, {
retryCodes: [500, 503],
});
}
function setVariable(projectId, configId, varId, value) {
const path = ["projects", projectId, "configs", configId, "variables", varId].join("/");
return getVariable(path)
.then(() => {
return updateVariable(projectId, configId, varId, value);
})
.catch((err) => {
if (_.get(err, "context.response.statusCode") === 404) {
return createVariable(projectId, configId, varId, value);
}
return Promise.reject(err);
});
}
function deleteVariable(projectId, configId, varId) {
return apiClient
.delete(`/projects/${projectId}/configs/${configId}/variables/${varId}`, {
retryCodes: [500, 503],
queryParams: { recursive: "true" },
})
.catch((err) => {
if (_.get(err, "context.response.statusCode") === 404) {
logger_1.logger.debug("Variable already deleted.");
return Promise.resolve();
}
return Promise.reject(err);
});
}
exports.configs = {
list: listConfigs,
create: createConfig,
delete: deleteConfig,
};
exports.variables = {
list: listVariables,
get: getVariable,
set: setVariable,
delete: deleteVariable,
};