Ir al contenido principal
Rest API: Unidades

Como recuperar la lista de unidades

Rafel Tugues avatar
Escrito por Rafel Tugues
Actualizado hace más de 3 años

1. Funcionamiento de las unidades

Las unidades nos permite expresar de forma más natural los diferentes formatos que expresamos en las recetas o los formatos de compra.

En cada unidad podemos definir una equivalencia. Por ejemplo podemos decir que 1 Kg equivale a 1000 g.

Esas equivalencias deben ser universales y cumplirse siempre. Lo que no debemos es definir que 1 Botella son 750 ml ya que eso, si bien acostumbra a ser cierto para una botella de vino, no lo es para un refresco o un licor.

1.1. Rest API : Login

Para poder hacer llamadas a nuestras api's lo primero que necesitamos es identificarnos mediante una llamada de login

Esa llamada nos retornara una token que después debemos asociar en cada llamada posterior.

Este shell script muestra como autenticar-nos mediante curl

[email protected]
password=XXXXXXX

url=https://www.tspoonlab.com/recipes/api
authenticate='username='$username'&password='$password

echo -n 'rememberme:' > rememberme.txt
curl -v --data $authenticate $url/login >> rememberme.txt

En las llamadas posteriores debemos añadir a nuestros headers el token recibido de la llamada de login

curl -X PUT -v -H "$(cat rememberme.txt)" $url/integration/llamada

1.2. Rest API : Seleccionar un centro de coste/restaurante

Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste. Que en la mayoría de los casos se correspondería con un restaurante

Para recuperar la lista de centros de costes y sus identificadores consulta el documento

El identificador de cenetro de coste se corresponde al campo idOrderCenter de la classe UserOrderCenter

Una vez tenemos el identificador este deberá añadirse a los headers para que sea utilizado en llamadas posteriores

echo -n 'order:351583444167656299610202XXXXXXXXXXXX' >> rememberme.txt

Por tanto en nuestros request headers debemos especificar tanto el token devuelto por el login como el identificador del centro de coste

rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
order:351583444167656299610202XXXXXXXXXXXX

1.3. Rest API : Recuperar las unidades

Para recuperar las unidades

https://www.tspoonlab.com/recipes/api/listUnitsPaged?filter=&rows=50&start=0

filter nos permite filtrar por descripción, start y rows nos permiten la paginación.

retorna una lista de las unidades

retorna un List<Unit>

class Unit {

private String id;
private String descr;
}

nos retorna el id la descripción (id, descr) de la unidad

1.4. Rest API : Recuperar una unidad

Para recuperar una unidad

GET https://www.tspoonlab.com/recipes/api//unit/{idUnit}/num/{numElements}

idUnit es el identificador de la unidad conseguido en la llamada anterior.

Ademas de la información propia de la unidad nos retorna una lista de productos donde esta asignada dicha unidad. numElements nos indica cuantos queremos recuperar

Retorna

public class Unit extends EntityBaseDescr {

private String id;
private String descr;
private boolean defecte;
private boolean defectePlat;
private boolean defecteMenu;
private boolean defecteDetall;
private boolean defecteFormat;

private List<EntityBaseBool> listVendors;
private List<EntityBaseBool> listCustomers;
private List<EntityBaseComponent> listDetails;
private List<EntityBaseComponent> listComponents;
private long listVendorsCount;
private long listCustomersCount;
private long listDetailsCount;
private long listComponentsCount;
private List<UnitConversion> listConversions;

}

public class EntityBaseBool extends EntityBaseDescr {
private String id;
private String descr;
private boolean defecte;
}

public class EntityBaseComponent extends EntityBaseDescr {
private String id;
private String descr;
private Short type;
private Long color;
}

defecte indica si dicha unidad es la unidad por defecto para peso.

defectePlat indica si dicha unidad es la unidad por defecto para platos.

defecteMenu indica si dicha unidad es la unidad por defecto para menus

defecteDetall indica si dicha unidad es la unidad por defecto para el detalle de una receta

defecteFormat indica si dicha unidad es la unidad por defecto para el formato de compra de un proveedor

En listVendors y listCustomers nos indica aquellos proveedores o clientes donde se hace referencia a dicha unidad. EntityBaseBool contiene el id y descr de esas entidades.

En listDetails se indican que linias de recetas o platos continenen dicha unidad

En listComponents se indican que recetas o platos contienen dicha unidad

En EntityBaseComponent el color indica del color del producto en caso de ser un ingrrediente

El campo type indica que tipo de producto es:

  • 0 para ingredientes / produtos

  • 1 para recetas / elaboraciones intermedias

  • 2 para materiales / herramientas

  • 3 para platos / elaboraciones finales

Para recuperar más datos asociados a la unidad

GET https://www.tspoonlab.com/recipes/api/unit/{idUnit}/components/paged/paged?filter=&rows=20&start=20

GET https://www.tspoonlab.com/recipes/api/unit/{idUnit}/details/paged?filter=&rows=20&start=20

GET https://www.tspoonlab.com/recipes/api/unit/{idUnit}/vendors/paged?filter=&rows=20&start=20

GET https://www.tspoonlab.com/recipes/api/unit/{idUnit}/customres/paged?filter=&rows=20&start=20

1.5. Rest API : Crear una unidad

Para crear una unidad

POST https://www.tspoonlab.com/recipes/api/unit

Donde en el request body pasamos

public class NewUnit {

String descr;
boolean defecte;
Boolean defectePlat;
Boolean defecteMenu;
Boolean defecteDetall;
Boolean defecteFormat;
}

Donde

  • defecte es la unidad por defecto para peso (Normalmente kg)

  • defectePlat es la unidad por defecto para platos (Normalmente Rac)

  • defecteMenu es la unidad por defecto para menús (Normalmente Pax)

  • defecteDetail es la unidad por defecto para el detalle de una elaboracion (Normalmente kg o g)

  • defecteFormat es la unidad por defecto para los formatos de compra de los proveedores

1.6. Rest API : Borrar una unidad

Para borrar una unidad

DELETE https://www.tspoonlab.com/recipes/api/unit/{idUnit}

En caso que la unidad se este utilizando en recetas, ingredientes, platos, menus, comprasm proveedores no se podra borrar

¿Ha quedado contestada tu pregunta?