manuales_desarrollo

Manuales de desarrollo de YeboYebo


Project maintained by yeboyebo Hosted on GitHub Pages — Theme by mattgraham

Pineboo Server desde Eneboo / Programar llamadas

Clase HTTP

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);
		}
	}

Activar la llamada para una extensión

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
}

Más