navidev-abap-gw-api
Version:
API para la extracción de datos de servicios SAP GW
35 lines (34 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class MetadataURLUtils {
/**
* Construye la URL para obtener el metadata de un servicio del value list a partir de la URL del metadata del servicio.
* Yaa que la URL del valuest se concatena a la URL del servicio. Ejemplo:
* la URL del servicio es esta: /sap/opu/odata4/sap/zui_booking_o4/srvd/sap/zui_booking/0001/
* la URL del valie list es esta: ../../../../srvd_f4/dmo/i_customer_stdvh/0001;ps='srvd-zui_booking-0001';va='com.sap.gateway.srvd.zui_booking.v0001.et-zc_booking.customerid'/$metadata
* la URL resultante tiene que ser: http://vhcala4hci:50000/sap/opu/odata4/sap/zui_booking_o4/srvd_f4/dmo/i_customer_stdvh/0001;ps='srvd-zui_booking-0001';va='com.sap.gateway.srvd.zui_booking.v0001.et-zc_booking.customerid'/$metadata
* Cada ".."" de la URL del value list se tiene que eliminar y quitar también la parte final de la URL del servicio . Una vez quitado los ".." y la parte final
* de la URL del servicio se concatena la URL del value list a la URL del servicio.
* @param urlValueList
* @param urlService
*/
static buildURLMetadataValueList(urlValueList, urlService) {
let urlValueListAux = urlValueList;
let urlServiceAux = urlService;
let urlValueListAuxSplit = urlValueListAux.split("/");
let urlServiceAuxSplit = urlServiceAux.split("/");
// En la separación se añaden cadenas vacias en ambos arrays al principio y final que se tengo que eliminar.
if (urlServiceAuxSplit[0] === "")
urlServiceAuxSplit.shift();
if (urlServiceAuxSplit[urlServiceAuxSplit.length - 1] === "")
urlServiceAuxSplit.pop();
// Se quitan los ".." y la parte final de la URL del servicio.
while (urlValueListAuxSplit[0] === "..") {
urlValueListAuxSplit.shift();
urlServiceAuxSplit.pop();
}
let urlValueListMetadata = "/" + urlServiceAuxSplit.join("/") + "/" + urlValueListAuxSplit.join("/");
return urlValueListMetadata;
}
}
exports.default = MetadataURLUtils;