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
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
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
marked (Boolean). Retorna solo aquellos que estan marcados. Es opcional
hidden (Boolean). Retorna solo los ocultos. Es opcional
used (Boolean). Retorna solo los productos que se utilizan en alguna elaboración. Es opcional
notUsed (Boolean). Retorna solo los productos que no se utilizan en ninguna elaboración. Es opcional
withPrice (Boolean). Retorna solo los productos que tienen precio. Es opcional
withNoPrice (Boolean). Retorna solo los productos que no tienen precio. Es opcional
withVendor (Boolean). Retorna solo los productos que tienen algun proveedor asociado. Es pocional
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:
id es el identificador del producto
descr es el nombre del producto
color es el color asociado al producto. Solo encaso que sea ingrediente
type toma valor 0 para productos/ingredientes y 1 para herramientas/materiales
codi es el código del producto
hasData indica que dicho producto se esta utilizando en alguna elaboracion
tag es nulo si el producto no tiene ninguna marca sino toma los siguientes valores. (Ok:1, MoreInfo: 2, Error:3)
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