Ir al contenido principal
Todas las coleccionesRest API - Integraciones
REST Api: Productos y herramientas
REST Api: Productos y herramientas

Como crear, modificar y borrar ingredinetes/productos y materiales/herramientas

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

1. Productos básicos

Se consideran productos básicos aquellos que después utilizamos en elaboraciones o platos finales. Son las piezas a partir de las cuales se construye toda la oferta gastronómica

Tenemos dos tipos:

  • Productos/Ingredientes. Son aquellos que consumimos. Pueden ser productos primarios o elaboracions que ya compramos hechas

  • Herramientas/Materiales. Son productos accesorios que no se consumen y se utilizan para realizar o para servir las elaboraciones.

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 : Listar todos los productos basicos

Tenemos dos llamadas

GET: 
https://www.tspoonlab.com/recipes/api/listIngredientsPaged
o
https://www.tspoonlab.com/recipes/api/listMaterialsPaged

Podemos pasar los siguentes request params

  1. start (int). Número de la primera fila a retornar. Es obligatorio

  2. rows (int). Número de filas a retornar. Es obligatorio

  3. filter (String). Cadena para filtrar los ingredientes. Es opcional

  4. types (Array de String). Array con los ids de las familias que queremos filtrar. En caso de especificar més de una familia el producto deberá tener ambas familias. Es opcional

  5. marked (Boolean). Retorna solo aquellos que estan marcados. Es opcional

  6. hidden (Boolean). Retorna solo los ocultos. Es opcional

  7. used (Boolean). Retorna solo los productos que se utilizan en alguna elaboración. Es opcional

  8. notUsed (Boolean). Retorna solo los productos que no se utilizan en ninguna elaboración. Es opcional

  9. withPrice (Boolean). Retorna solo los productos que tienen precio. Es opcional

  10. withNoPrice (Boolean). Retorna solo los productos que no tienen precio. Es opcional

  11. withVendor (Boolean). Retorna solo los productos que tienen algun proveedor asociado. Es pocional

  12. withNoVendor (Boolean). Retorna solo los productos que no tienen ningún proveedor asociado.

Retorna

retorna una List<EntityBaseImagesColor> 

EntityBaseImagesColor {
String id;
String descr;
Long color;
short type;
String codi;
boolean hasData;
Short tag;
String tagComment;
}

Donde:

  1. id es el identificador del producto

  2. descr es el nombre del producto

  3. color es el color asociado al producto. Solo encaso que sea ingrediente

  4. type toma valor 0 para productos/ingredientes y 1 para herramientas/materiales

  5. codi es el código del producto

  6. hasData indica que dicho producto se esta utilizando en alguna elaboracion

  7. tag es nulo si el producto no tiene ninguna marca sino toma los siguientes valores. (Ok:1, MoreInfo: 2, Error:3)

  8. tagComment es el comentario asociado a la marca

1.4. Rest API : Crear un producto

Tenemos dos llamadas

POST

https://www.tspoonlab.com/recipes/api/ingredient
https://www.tspoonlab.com/recipes/api/material

En el request body especificaremos

class NewComponentBase {
String descr;
String altDescr;
String idUnit;
List<NewComponentType> listComponentTypes;
boolean includeInOrder;
boolean averageCost;
boolean fixedCost;
List<NewComponentStore> listStores;
Double cost;
Double minStock;
Double maxStock;
String codi;
Double caducity;
String barcode;
}

class NewComponentType {
String id;
}

class NewComponentStore {
String id;
}

descr es el nombre del producto. Normalmente el de cocina

altDescr es otro nombre del producto. Normalmente un nombre mas comercial

idUnit es el id de la unidad del producto

listComponentType son la lista de familias (todas para ingredientes o materiales) a asociar con el nuevo producto

includeInOrder toma valor true;

averageCost toma valor false

fixedCost toma valor false

listStores almacén o almacenes donde se almacenará el producto

cost coste del producto expresado para una unidad

minStock stock mínimo del producto

maxStock stock máximo del producto

codi código del producto

cacucity Días de caducidad del producto

barcode código de barras del producto

1.6. Rest API : Eliminar un producto

Tenemos dos llamadas

DELETE

https://www.tspoonlab.com/recipes/api/ingredient/{idComponent}
https://www.tspoonlab.com/recipes/api/material/{idComponent}

No retorna nada

¿Ha quedado contestada tu pregunta?