Ir al contenido principal
REST Api: Alérgenos

Como recuperar, crear, modificar y borrar alérgenos

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

1. Funcionameinto de los alérgenos

tspoonlab dispone al crear la cuenta una lista de los 14 alérgenos oficiales según la normativa en vigor en la unión europea. El usuario puede además crear nuevos alérgenos para poder realizar una gestión más detallada.

Los alérgenos se asignan a los ingredientes/productos. Dicha asignación la debemos realizar en base a las fichas técnicas que nos proporciona el proveedor y que es necesario archivar para cumplir con los requerimientos de sanidad. En dicha asignación podemos indicar si se trata de un alérgeno o de una traza.

Las recetas/elaboraciones intermedias y los platos/elaboraciones finales muestran en todo momento los alérgenos fruto del recálculo basado en sus ingredientes. En caso que un mismo alérgeno aparezca como traza y alérgeno en dos ingredientes distintos se asignará directamente el alérgeno.

En determinados casos también nos puede interesar asignar trazas a nuestros productos finales o intermedios en base a otras producciones que realizamos en la misma partida / instalaciones. Es habitual en aquellos entornos donde se trabaja con harina o frutos secos el asignar estas trazas al resto de productos.

1.1. Rest API : Login

Para poder hacer llamadas a nuestas api's lo primero que ncesitamos 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 authenticar-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 la lista de alérgenos

Para recuperar la lista debemos realizar esta llamada

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

El parámetro filter nos permite filtrar por descripción, rows es el número de filas que queremos obtener y start la primera fila a devolver

La petición nos devuelve un array con el id y descripón de cada alérgeno

[
{
id:"194443382822263016755563050734447984070",
descr:"Altramuces"
},
{
id:"181691964862034253332266321442051901807",
descr:"Apio"
}
....
]

1.4. Rest API : Recuperar un alérgeno

Para obtener los datos debemos utilizar el id conseguido en la petición anterior y realizar esta llamada

GET: 
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/num/{numChild}

El parámetro idAllergy nos indica la alergia a recuperar.

La información retornada incluye también que productos base (ingredientes) y que productos elaborados tienen esa alergia. El parámetro numChild indica cuantos productos que tienen ese alérgeno queremos retornar en la petición.

class Allergy  {
String id;
String descr;
String comment;
List<AllergyComponent> listComponentBase;
List<AllergyComponent> listComponentComplex;
}

class AllergyComponent {
String id;
String descr;
String idComponent;
boolean traces;
private int type;
private Long color;
}

En AllergyComponent el id identifica la relación entre un alérgeno y un componente.

El idComponent nos indica el componente al que está vinculado este alergeno, descr es el nombre del componente y el campo traces nos indica si se trata de un alérgeno o de una traza.

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

En el caso de los ingredintes/productos color indica el color asignado al mismo

Si para esta alergia queremos recuperar más productos base o productos elaborados debemos llamar a

GET https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/base/{isBase}/components/paged?filter=&rows=20&start=20

Donde los parámetros filter, rows y start siguen los criterios que ya hemos explicado. idAllergy es el identificador del alérgeno y isBase nos indica si queremos recuperar producto base o producto elaborado (toma los valores true, false).

Retorna una lista de AllergyComponent

1.5. Rest API : Crear un alérgeno

Para crear un alérgeno debemos llamar a

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

pasando en el request body

class NewAllergy {
String descr;
String comment;
}

descr y comment son la descripción y comentario del alérgeno

1.6. Rest API : Modificar un alérgeno

Para modificar un alérgeno debemos llamar a

PUT https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}

pasando en el request body

class NewAllergy {
String descr;
String comment;
}

1.7. Rest API : Eliminar un alérgeno

Para elminar un alérgeno debemos llamar a

DELETE https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}

La alergia se borrara de todos los productos base que la tengan asignada (como alérgeno o com traza) y de todos aquellos productos elaborados que utilizen ese ingrediente.

1.8. Rest API : Asignar un alérgeno a un producto

LLamaremos a

POST 
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/add

Pasando en el request body

class NewAllergyComponentsWrapper {
List<NewAllergyComponent> components;
}

public class NewAllergyComponent {

String id; // con valor null
String idComponent;
boolean traces;
}

En id no estableceremos ningun valor y se dejara a null. idComponent es el producto al que queremos asignar la alergia y traces nos indica si es una traza.

La petición devolverá la lista de todos los productos base y productos elaborados donde se ha añadido directa o indirectamente la alergia

class AllergyGroup {

List<AllergyComponent> listComponentBase;
List<AllergyComponent> listComponentComplex;
}

Allergy component ya se ha explicado con anterioridad

1.9. Rest API : Desasignar un alérgeno a un producto

Para desasignar llamaremos a

POST 
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/remove

En el request body pasaremos

class NewAllergyComponentsWrapper {
List<DeleteAllergyComponent> components;
}

public class DeleteAllergyComponent {
String id;
}

El id se corresponde al identificador de la alergia con el componente

Retornará una lista de totos los productos donde se ha desasignado la alergia

retorna un List<ComponentWithType> 

class ComponentWithType {

String id;
String descr;
int type;
Long color;

}

id es el identificador del componente/producto , descr la descripción

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

En el caso de los ingredintes/productos color indica el color asignado al mismo


¿Ha quedado contestada tu pregunta?