UNPKG

navidev-adt-api

Version:

API de conexión al Abap Developer Tools

126 lines (124 loc) 6.44 kB
"use strict"; 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 Result_1 = require("../shared/core/Result"); const xmlParser_1 = __importDefault(require("../shared/utilities/parser/xmlParser")); const transportConstants_1 = require("./transportConstants"); class TransportObjectApp { constructor(connectionController) { this.connectionController = connectionController; } /** * Mover objecto de una orden/tarea a otra orden/tarea. Los datos del objeto son los que se * recuperán al leer las ordenes del usuario * @param object * @param order * @param newOrder * @returns */ moveObject(object) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.connectionController.request(`${transportConstants_1.TRANSPORT_URL.ORDER}/${object.oldOrder}/moveobjects`, { method: "POST", body: ` <?xml version="1.0" encoding="ASCII"?> <tm:root xmlns:atom="http://www.w3.org/2005/Atom" xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${object.newOrder}" tm:useraction="moveobjects"> <tm:request> <tm:abap_object tm:dummy_uri="${encodeURIComponent(object.dummyUri)}" tm:lock_status="${object.lockStatus}" tm:name="${object.name}" tm:obj_desc="${object.objDesc}" tm:obj_info="${object.objInfo}" tm:pgmid="${object.pgmid}" tm:type="${object.type}" tm:wbtype="${object.wbtype}" tm:position="${object.position}" tm:img_activity="${object.imgActivity}"> <atom:link href="/sap/bc/adt/cts/transportrequests/${object.oldOrder}" rel="http://www.sap.com/cts/relations/removeobject" title="Transport Organizer Remove Locked Object" type="application/xml"/> <atom:link href="/sap/bc/adt/cts/transportrequests/${object.oldOrder}/moveobjects" rel="http://www.sap.com/cts/relations/moveobjects" title="Transport Organizer Move Objects" type="application/xml"/> </tm:abap_object> </tm:request> </tm:root> `, }); if (response.isSuccess) { return Result_1.Result.ok(object); } else { return Result_1.Result.fail(response.getErrorValue()); } }); } /** * Borrado de un objeto de una orde o tarea. Los datos del objeto son los que se * recuperán al leer las ordenes del usuario. * @param object * @param order * @returns */ removeObject(object) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.connectionController.request(`${transportConstants_1.TRANSPORT_URL.ORDER}/${object.order}`, { method: "PUT", body: `<?xml version="1.0" encoding="ASCII"?> <tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${object.order}" tm:useraction="removeobject"> <tm:request> <tm:abap_object tm:name="${object.name}" tm:obj_desc="${object.objDesc}" tm:pgmid="${object.pgmid}" tm:type="${object.type}" tm:position="${object.position}"/> </tm:request> </tm:root>`, }); if (response.isSuccess) { return Result_1.Result.ok(Object.assign({}, object)); } else { return Result_1.Result.fail(response.getErrorValue()); } }); } /** * Añade un objeto a una orden * @param order Orden * @param objectName Nombre del objeto * @param objectType Tipo de objeto (ejemplo: PROG, CLAS,etc) * @param programID Id del objeto(ejemplo:R3TR,LIMU,etc.) * @returns */ AddObject(order, objectName, objectType, programID) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.connectionController.request(`${transportConstants_1.TRANSPORT_URL.ORDER}/${order}`, { method: "PUT", body: `<?xml version="1.0" encoding="ASCII"?> <tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${order}" tm:useraction="addobject"> <tm:request> <tm:abap_object tm:name="${objectName}" tm:pgmid="${objectType}" tm:type="${programID}"/> </tm:request> </tm:root>`, }); if (response.isSuccess) { let httpResponse = response.getValue(); let bodyParsed = xmlParser_1.default.fullParse(httpResponse.body); return Result_1.Result.ok({ object: { name: bodyParsed["tm:root"]["tm:request"]["tm:abap_object"]["@_tm:name"], type: bodyParsed["tm:root"]["tm:request"]["tm:abap_object"]["@_tm:type"], objInfo: "", dummyUri: "", wbtype: "", pgmid: bodyParsed["tm:root"]["tm:request"]["tm:abap_object"]["@_tm:pgmid"], imgActivity: bodyParsed["tm:root"]["tm:request"]["tm:abap_object"]["@_tm:img_activity"], lockStatus: bodyParsed["tm:root"]["tm:request"]["tm:abap_object"]["@_tm:lock_status"], objDesc: "", position: 0, }, order: order, }); } else { return Result_1.Result.fail(response.getErrorValue()); } }); } } exports.default = TransportObjectApp;