Ir al contenido principal
Rest API. Almacenes
Rafel Tugues avatar
Escrito por Rafel Tugues
Actualizado hace más de un año

1. Gestión de Almacenes

En este artículo veremos como gestionar los almacenes

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://app.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 los almacenes

Para recuperar los almacenes

GET: 
https://app.tspoonlab.com/recipes/api/listStoresPaged

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

Retorna

retorna una List<StoreEntry> 

StoreEntry {
String id;
String descr;
boolean defecte;
}

Donde:

  1. id es el identificador del almacén

  2. descr es el nombre del almacén

  3. defecte es un almacén por defectp

1.4. Rest API : Recuperar un almacén

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/num/{numComponents}

donde

idStore es el identificador del almacén

idInventory es el inventario a partir del cual queremos recuperar los datos. null para recuperar todos los datos desde el último inventario

numComponents indica cuantos componentes queremos retornar

Retorna

public class Store  {

String id; // Id del almacén
String descr; // Descripción del almacén
String comment; // Comentario del almacén
List<StoreComponent> listComponent; // Components del almacen
}

public class StoreComponent {
String id; // Id del store component
String descr; // Descripción del componente
String idComponent; // Identificador del componente
private String idUse; // Identificador del uso
private String use; // Descipción del uso
private String unit; // unidad
private String idUnit; // Id d la unidad
private Double quantityInventory; // Cantidad del último inventario
private Double quantityInput; // Cantidad total de entradas
private Double quantityOutput; // Canditad total de salidas
private Double quantityDesviation; // Cantidad de las desviaciones detectadas
}

Para poder acceder a mas StoreComponents

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/paged

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 components. Es opcional

Retorna una lista de StoreComponent

1.5. Rest API : Crear un almacén

Para crear un almacén

POST: 
https://app.tspoonlab.com/recipes/api/store

Donde en el requestbody pasamos

public class NewStore {

String descr; // Descripciñon del almacén
String comment; // Comentario
boolean defaultReception; // Almacén por defecto para recepación
boolean defaultProduction; // Almacén por defecto para producción
boolean defaultExpedition; // Almacén por defecto para expedicion
}

1.6. Rest API : Borrar un almacén

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}

Al eliminar un almacén se eliminan todos sus inventarios

1.7. Rest API : Añadir un component al almacén

PUT: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/components

En el requestbody pasaremos

public class NewStoreComponentsWrapper {
List<NewStoreComponent> components;
}

public class NewStoreComponent {

String id; // Al añadir nulo
String idComponent; // Identificador del componente
String idUse; // Id del corte o despiece
}

1.8. Rest API : Quitar un component de un almacen

Para quitar un producto del almacen

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/component/{idStoreComponent}

1.9. Rest API : Listar ubicaciones

Para listar las ubicaciones de un almacén

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/locations

Retorna

Retorna una List<StoreLocation>

public class StoreLocation {

String id; // Identificador de la ubicación
String descr; // Descripción de la ubicación
Integer countStoreComponents; // Numero de componentes en la ubicación
String comment;

1.10. Rest API : Crear una ubicación

Para crear una ubitacion en un almacén

POST: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/location

Pasando

public class NewStoreLocation {
String descr; // Nombre de la location
String comment;
}

Retorna un IdWrapper con el identificador de la nueva ubicación

public class IdWrapper {

String id;
}

1.11. Rest API : Eliminar una ubicación

Para eliminar una ubicación

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/location/{idStoreLocation}

1.12. Rest API : Listar storecomponents dentro de una ubicación

GET: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents

Retorna

Retorna List<StoreLocationStoreComponent>


public class StoreLocationStoreComponent {
String id; // Identificador del storelocationstorecomponent
String descr; // Descripción del componente
String idComponent; // Identificador del components
String idUse; // Identificador del corte o depiece
String use; // Descripción del corte o despiece

1.13. Rest API : Añadir componentes a una ubicación

Para añadir StoreComponents a una ubicación debemos pasar una lista de storecomponents a añadir

POST: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/add

Pasando en el request body una lista de los idStoreComponents

public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}

public class NewStoreLocationStoreComponent {


private String id; // Nulo al añadir
private String idStoreComponent; // Identificador del storecomponent
}

1.14. Rest API : Quitar components de una ubicación

Para quitar StoreComponents a una ubicación debemos pasar una lista de storecomponents a añadir

POST: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/delete

Pasando en el request body una lista de los idStoreComponents

public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}

public class NewStoreLocationStoreComponent {


private String id; // Identificador a eliminar
private String idStoreComponent; // Identificador del storecomponent
}

1.15. Rest API : Para mover algunos store component de un almacén a otro

Para mover algunos store component de un almacén a otro debemos

PUT: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/components/move/some/{idStoreDest}

idStore es el almacén origen i idStoreDest el alamacén destino

Donde pasamos los ids de los store components que queremos mover a otro almacén

public class NewListIds {
List<String> listIds; // Identificadores de los storecompoenents a mover
}

1.16. Rest API : Listar todos los Inventarios

Para listar todos los inventarios

GET: 
https://app.tspoonlab.com/recipes/api/listInventoriesPaged

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 almacenes Es opcional

  4. year (int). Año de los inventarios a recuperar. Es opcional

  5. month (int). Mes de los inventarios a recuperar. Es opcional

Retorna

retorna una List<EntityBaseData> 

EntityBaseDate {
String id; // Id del inventario
String descr; // Nombre del almacen
String idAux; // Id del almacen
Integer year;
Integer month;
Date dateGenerated; // Fecha del inventario
}

Donde:

  1. id es el identificador del inventario

  2. idAux es el identificador del almacén

  3. descr es el nombre del almacén

  4. year y month es el año y mes del inventario

  5. dateGenerated es la fecha del inventario

Los datos devueltos se ordenan por la fecha del inventario de forma descendente

1.17. Rest API : Recuperar el valor de un inventario

Para recuperar valor de un inventario

GET: 
https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/total

Retorna

class DoubleWrapper  {
Double value;
}

Donde value es la valoración del inventario

1.18. Rest API : Recuperar las cantidades de cada uno de los componentes

Para recuperar las cantidades introducidas en el inventario debemos llamar a

GET: 

https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/components/paged?start=0&rows=50

Donde idInventory: Es el identificador del inventario

Podemos pasar los siguientes 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

Retorna:

class StoreComponent  {
String id; // Identificador de la entrada del producto en el inventario
String descr; // Nombre del producto
String idComponent; // Identificador del producto


Double quantity; // Cantidad del inventario
Double cost; // Coste del recuento
}

¿Ha quedado contestada tu pregunta?