Manuales de desarrollo de YeboYebo
Hemos creado una nueva clase en Sistema > Libreria, llamada HTTP, que servirá para realizar llamadas a urls, entre ellas, la API de Pineboo Server.
NOTA: Esta clase, al contrario que el resto de las de la librería, es sobrecargable, por lo que debemos llamarla con formHTTP.iface.[funcion] y no con formHTTP[funcion]
La clase HTTP permite hacer cuatro tipos de llamadas o requests:
Los parámetros de todas estas llamadas son los mismos:
La función devuelve un objeto:
{
ok: true / false // que indica si la llamada a funcionado o no
salida: {} // que contiene los datos de respuesta en caso de ok = true
}
Ejemplo de uso:
if (flfactppal.iface.usarServidorPineboo()) {
var respuesta = formHTTP.iface.post("pedidoscli/" + idPedido + "/generar_albaran", {})
if (respuesta.ok) {
idAlbaran = respuesta.salida["idalbaran"];
} else {
formUI.ponMsgError(sys.translate("Hubo un error en la generación del albarán"), this);
}
}
En la llamada a activar, preguntamos si está activa la API y la hacemos de ambas formas:
if (formHTTP.iface.usarAPI("articulos/cambiar_proveedor_defecto")) {
const url = "articulos/" + referencia + "/cambiar_proveedor_defecto"
const respuesta = formHTTP.iface.patch(url, {
"codproveedor": codProveedor
})
if (!respuesta.ok) {
formUI.ponMsgError(sys.translate("Hubo un error al marcar el proveedor por defecto\n%1").arg(respuesta.salida), this);
}
} else {
if (!_i.establecerProveedorDefecto(referencia, codProveedor)) {
return false;
}
}
Sobrecargamos HTTP.py para incluir la llamada en la lista de llamadas HTTP:
function miExtension_getAccionesAPI()
{
const _i = this.iface
const llamadas = _i.__getAccionesAPI()
llamadas["pedidoscli/generar_albaran"] = true
llamadas["articulos/cambiar_proveedor_defecto"] = true
return llamadas
}