Rest API: Gestión de Agrupaciones
En éste artículo veremos como crear, gestionar y eliminar las agrupaciones.
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 retornará una token que después debemos asociar en cada llamada posterior.
Este shell script muestra como autenticarnos 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
Rest API : Seleccionar un centro de coste/restaurante
Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste, 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 artículo Rest API: Centros de coste.
El identificador de centro de coste se corresponde al campo idOrderCenter de la clase 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
Rest API : Seleccionar un libro de elaboraciones finales
Las peticiones que se describen en los apartados siguientes pueden realizarse para todos lo libros de elaboraciones finales o solo para un libro.
Para recuperar la lista de elaboraciones finales y sus identificadores consulta el artículo Rest API: Libros de elaboraciones finales.
El identificador de libro de elaboraciones finales se corresponde al campo idRecipeCenter de la clase UserRecipeCenter.
Una vez tenemos el identificador este deberá añadirse a los headers para que sea utilizado en llamadas posteriores:
echo -n 'recipe: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.
Debemos enviar además del token de rememberme, el centro de costes y el libro de elaboraciones finales:
rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
recipe:351583444167656299610202XXXXXXXXXXXX
order:351583444167656299610202XXXXXXXXXXXX
En caso que deseemos hacer las llamadas para que afecten a todos los libros de elaboraciones finales debemos especificar all en recipe:
rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
recipe:all
order:351583444167656299610202XXXXXXXXXXXX
Rest API: Recuperar las agrupaciones
Para recuperar los agrupaciones:
GET:
https://www.tspoonlab.com/recipes/api/listMenusPagedEx
Podemos pasar los siguientes request parameters:
start (int). Número de la primera fila a retornar. Es obligatorio.
rows (int). Número de filas a retornar. Es obligatorio.
filter (String). Cadena para filtrar los ingredientes. Es opcional.
Retorna:
retorna una List<EntityBaseMenu>
EntityBaseMenu {
String id;
String descr;
String codi;
String altDescr;
String date;
Date dateGenerated;
boolean template;
Double pax;
}
Donde:
id es el identificador de la agrupación.
descr es el nombre de la agrupación.
codi es el código de la agrupación.
altDescr es el nombre alternativo de la agrupación.
date y dateGenerated es la fecha de la agrupación en formato texto o en formato Date.
template nos indica si la agrupación es una plantilla.
pax el número de comensales para el que hemos definido la agrupación.
Rest API : Recuperar una agrupación
GET:
https://www.tspoonlab.com/recipes/api/menu/ext/{idMenu}
idMenu es el identificador de la agrupación. Se corresponde al campo id de EntityBaseMenu de la llamada anterior
Retorna:
MenuExt {
String id;
String descr;
String altDescr;
String codi;
boolean template;
Date date;
String dateFormatted;
Double pax;
private Double costMin;
private Double costMax;
private Double costAvg;
private List<MenuGroupExt> listMenuGroup;
}
id, descr, altDescr, codi, template, date, dateFormatted y pax toman los mismos valores que los obtenidos en EntityBaseMenu.
costMin, costMax, costAvg son los costes mínimo, máximo y medio de la agrupación.
listMenuGroup es la lista de secciones dentro de la agrupación.
MenuGroupExt {
String id;
String descr;
String comment;
Double costMin;
Double costMax;
Double costAvg;
List<MenuGroupComponentExt> listMenuGroupComponent;
int typeMenuGroup;
Short numSelected;
}
id es el identificador de la sección.
descr es la descripción de la sección.
comment es el comentario de la sección.
costMin, costMax, costAvg son el coste mínimo, máximo y medio de la agrupación.
En las secciones de las agrupaciones podemos tener varias opciones donde se indica si se incluyen todos los platos o se deben seleccionar algunos.
typeMenuGroup puede tomar los siguientes valores:
short allIncluded = 0;
short chooseOne = 1;
short chooseMoreThanOne = 2;
short chooseMoreThanOneRepeated = 3;
allincluded es que se servirán todas las elaboraciones de la sección.
chooseOne el cliente escogerá solo una de las elaboraciones de la sección.
chooseMoreThanOne el cliente escogerá el número de elaboraciones de la sección.
chooseMoreThanOneRepeated el cliente escogerá el número de elaboraciones de la sección pero puede escoger más de una vez la misma elaboración.
numSelelected es el número de elaboraciones a escoger. Solo tiene sentido para chooseMoreThanOne o chooseMoreThanOneRepeated.
MenuGroupComponentExt {
String id;
String idComponent;
String descrComponent;
String idUnit;
String descrUnit;
String comment;
Double quantity;
Double cost;
}
Donde id es el identificador de la elaboración dentro de la sección.
idComponent y descrComponent es la elaboración.
idUnit, descrUnit es la unidad en que se expresa la elaboración.
comment es el comentario.
quantity es la cantidad de la elaboración para los pax definidos en la agrupación.
cost es el coste de la elaboración.
Rest API : Crear una agrupación
Para crear una agrupación debemos hacer esta llamada:
POST:
https://www.tspoonlab.com/recipes/api/menu/no/groups
Pasando en el request body la siguiente estructura:
NewMenu {
String descr;
String altDescr;
String comment;
String codi;
Date date;
Boolean template;
Double pax;
}
Donde:
descr es el nombre de la agrupación.
altDescr es el nombre alternativo.
comment es el comentario.
codi es el código de la agrupación.
date es la fecha de la agrupación. Este campo es opcional.
template true si se trata de una plantilla.
pax es el número de comensales para el que definimos la agrupación.
Retorna una clase del tipo idWrapper con el identificador del nuevo menú creado:
class IdWrapper {
String id;
}
Rest API : Añadir elaboraciones a la agrupación creada
PUT:
https://www.tspoonlab.com/recipes/api/menu/{idMenu}/components
Pasaremos el idMenu obtenido en la creación de la agrupación de la llamada anterior.
Primero crearemos las secciones:
class NewMenuGroupWrapper {
List<NewMenuGroup> menuGroups;
}
class NewMenuGroup {
String descr;
String comment;
short typeMenuGroup;
Short numSelected;
int position;
List<NewMenuGroupComponent> listMenuGroupComponent;
}
descr es el nombre de la sección.
comment es el comentario de la sección.
typeMenuGroup toma los valores.
short allIncluded = 0;
short chooseOne = 1;
short chooseMoreThanOne = 2;
short chooseMoreThanOneRepeated = 3;
numSelelected es el número de elaboraciones a escoger. Solo tiene sentido para chooseMoreThanOne o chooseMoreThanOneRepeated.
position nos indica el orden de las secciones.
listMenuGroupComponent es la lista de elaboraciones de la sección.
class NewMenuGroupComponent {
String idComponent;
String idUnit;
Double quantity;
String comment;
int position;
}
Donde:
idComponent es el identificador de la elaboración.
idUnit es el identificador de la unidad.
quantity es la cantidad de la elaboración para los pax definidos en la agrupación.
comment es el comentario.
position es el orden de la elaboración dentro de la sección.
Rest API : Eliminar una agrupación
Para eliminar una agrupación:
DELETE:
https://www.tspoonlab.com/recipes/api/menu/{idMenu}
¿Te ha resultado útil este artículo?
Si necesitas más ayuda, contacta con soporte haciendo clic en el Chat de Soporte Integrado en la esquina inferior derecha de tu pantalla.
