navidev-adt-api
Version:
API de conexión al Abap Developer Tools
97 lines (96 loc) • 4.26 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const atcConstants_1 = require("../adtAtc/atcConstants");
const Result_1 = require("../shared/core/Result");
const xmlParser_1 = __importDefault(require("../shared/utilities/parser/xmlParser"));
class AtcApp {
constructor(connectionController) {
this.connectionController = connectionController;
}
/**
* Obtiene la parametrización general
*/
getCustomizing() {
return __awaiter(this, void 0, void 0, function* () {
const response = yield this.connectionController.request(atcConstants_1.ATC_URL.CUSTOMIZING, {
method: "GET",
});
if (response.isSuccess) {
let httpResponse = response.getValue();
let bodyParsed = xmlParser_1.default.fullParse(httpResponse.body);
let custo = { exemption: [], properties: [] };
custo.properties = xmlParser_1.default.xmlArray(bodyParsed["atc:customizing"].properties.property).map((row) => {
return {
name: row["@_name"],
value: row["@_value"],
};
});
custo.exemption = xmlParser_1.default.xmlArray(bodyParsed["atc:customizing"].exemption.reasons.reason).map((row) => {
return {
id: row["@_id"],
justificationMandatory: row["@_justificationMandatory"],
title: row["@_title"],
};
});
return Result_1.Result.ok(custo);
}
else {
return Result_1.Result.fail(response.getErrorValue());
}
});
}
/**
* Devuelve la variante por defecto para el ATC
* @returns
*/
getDefaultVariant() {
return __awaiter(this, void 0, void 0, function* () {
var _a;
let responseCusto = yield this.getCustomizing();
if (responseCusto.isSuccess) {
let variant = (_a = responseCusto.getValue().properties.find((row) => row.name === atcConstants_1.CUSTO_PROPERTIES.DEFAULT_VARIANT)) === null || _a === void 0 ? void 0 : _a.value;
return Result_1.Result.ok(variant);
}
else {
return Result_1.Result.fail(responseCusto.getErrorValue());
}
});
}
/**
* Devuelve el id de worklist en los procesos donde se usa el ATC
* @returns
*/
getWorklist() {
return __awaiter(this, void 0, void 0, function* () {
let responseDefaultVariant = yield this.getDefaultVariant();
if (responseDefaultVariant.isFailure)
return Result_1.Result.fail(responseDefaultVariant.getErrorValue());
const response = yield this.connectionController.request(atcConstants_1.ATC_URL.WORKLIST, {
method: "POST",
qs: {
checkVariant: responseDefaultVariant.getValue(),
},
});
if (response.isSuccess) {
let httpResponse = response.getValue();
return Result_1.Result.ok(httpResponse.body);
}
else {
return Result_1.Result.fail(response.getErrorValue());
}
});
}
}
exports.default = AtcApp;