Ir al contenido principal

REST API: Producciones ​🔪

Cómo listar y crear producciones y partidas mediante Rest API

Rest API: Funcionamiento de las producciones

En este documento veremos como listar las partidas, las producciones de cada partida, crear una nueva producción y listar los ingredientes de una producción

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://app.tspoonlab.com/recipes/api
authenticate='username='$username'&password='$password

echo -n 'rememberme:' > rememberme.txt
curl -v -H "content-type: application/x-www-form-urlencoded" --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 : Listar todas las partidas

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

filter nos permite filtrar por descripción, start y rows nos permiten la paginación y

retorna una lista de las mermas diarias:

retorna un List<EntityBaseDescr>

class EntityBaseDescr {

String id;
String descr;

}

Rest API : Recuperar el id de las producciones diarias

POST
https://app.tspoonlab.com/recipes/api/production/day/{year}/{month}/{day}

Donde year, month, day son el año, mes y día de la producción de la que queremos obtener el id.

En caso que se solicitará un día por primera vez se crearía el id. En las peticiones posteriores retornaría el mismo id.

retorna un IdWrapper

class IdWrapper {

String id;
}

Rest API : Listar las producciones de un día pasando el id

GET
https://app.tspoonlab.com/recipes/api/productionComponentList?id=IIIIIIIIII&idPartida=PPPPPPPPPPPPPPPPPPPP&

id es el identificador de la producción que hemos obtenido en el apartado anterior

idPartida es el identificador de la partida. Solo nos retornará las elaboraciones que realice esa partida. Este identificador es opcional.

filter nos permite filtrar por descripción, start y rows nos permiten la paginación y

retorna una lista de las mermas diarias.

retorna un ProductionDay

public class ProductionDay {

String id;
String date;
int year;
int month;
int day;

List<ProductionDayComponent> listComponents;
}

ProductionDay id es el identificador de la producción y year,month,day el año, mes y día de dicha producción. Date es la fecha formateada.

listComponents es la lista de producciones para ese día.

class ProductionDayComponent {

String id;
String idComponent;
String descr;
String comment;
String dateGeneratedFlat;
String lot;
ProductionComponentStatus status;
String idPartida;
String partida;
List<ComponentServiceProduction> listComponentService;
}

id es el identificador de la producción de un elaborado. idComponent el identificador del elaborado. descr es la descripción del elaborado. comment, dateGeneratedFlat, lot son el comentario, hora de inicio de la producción y lote.

partida e idPartida nos indica la partida a la que pertenece la elaboración. Puede ser útil si al listar producciones no hemos filtrado por partida.

Las producciones pueden tener los siguientes estados. Pendiente, Iniciada y Finalizada estos se reflejan en status.

ProductionComponentStatus {

private String dateGenerated;
private String dateStarted;
private String dateDone;
private boolean started;
private boolean done;
}

Si la producción todavía no se ha iniciado. started es falso y done es falso.

Si la producción esta iniciada. started es verdadero y done es falso.

Una vez finalizada started es verdadero y done es verdadero.

La cantidad a producir se refleja en listComponentService.

 class ComponentServiceProduction {

String id;
String idUnit;
Double quantity;
String unit;

}

id es el identificador de esta entidad.

idUnit, unit identifican la unidad.

quantity identifica la cantidad.

Rest API : Iniciar, finalizar y reiniciar una producción

Para iniciar una producción

PUT
https://app.tspoonlab.com/recipes/api/productionComponent/{idProductionComponent}/start/status

idProductionComponent es el identificador de la producción del elaborado.

Para finalizar una producción

PUT
https://app.tspoonlab.com/recipes/api/productionComponent/{idProductionComponent}/done

idProductionComponent es el identificador de la producción del elaborado.

Para reiniciar una producción ya finalizada

PUT
https://app.tspoonlab.com/recipes/api/productionComponent/{idProductionComponent}/redo

idProductionComponent es el identificador de la producción del elaborado.

Retornan un ProductionComponentStatus actualizado de la aplicación. Los campos de esta clase se explican en el apartado anterior.

Rest API : Crear una nueva producción

Para crear una producción primero debemos seleccionar una elaboración:

GET
https://app.tspoonlab.com/recipes/api/recipes/api/listComponentsPartidaPagedEx?filter=&filterType=recipeAndDish&partida={idPartida}&start=0;rows=50

Donde:

filter es el filtro de búsqueda para la descripción.

filterType siempre debe tomar el valor recipeAndDish.

partida es el identificador de la partida activa.

start y rows se utilizan para la paginación.

Retorna 
class SearchResult {
String filter;
List<EntityBaseComponent> list;
}

EntityBaseComponent {
String id;
Short type;
String descr;
String codi;
}

id es el identificador de la elaboración (idComponent).

type es 1 para elaboraciones intermedias y 3 para elaboraciones finales.

descr y codi son la descripción y código de la elaboración.

Una vez tenemos seleccionada la elaboración debemos recuperar las cantidades por defecto a elaborar.

GET
https://app.tspoonlab.com/recipes/api//recipes/api/component/{idComponent}/quantityUnit

idComponent es el identificador de la elaboración:

Retorna  List<QuantityUnit>
class QuantityUnit {

String id;
String descr;
Double quantity;
}

Donde:

id y descr son el identificador de la unidad y el nombre de la unidad.

quantity es la cantidad a producir.

Una vez tenemos ya seleccionada una elaboración y la cantidad a elaborar creamos la producción:

POST
https://app.tspoonlab.com/recipes/api//recipes/api/production/{idProduction}/component/{idComponent}/quantities/events

idProduction y idComponent son el identificador de la producción y la elaboración.

Se pasará los datos del POST con el header content-type: application/json:

class NewProductionComponentWithEvents {

List<NewProductionComponentEventQuantity> quantities;
}

class NewProductionComponentEventQuantity {

String idUnit;
Double quantity;
}

retorna un IdWrapper

class IdWrapper {

String id;
}

id es el identificación de la producción de la elaboración (idProductionComponent)

Rest API : Eliminar una producción

DELETE
https://app.tspoonlab.com/recipes/api/productionComponent/{idProductionComponent}

idProductionComponent es el identificador de la producción del elaborado.

Rest API : Crear, iniciar y finalizar una producción

Para crear una producción, iniciarla y finalizarla en un solo paso debemos llamar a:

POST
https://app.tspoonlab.com/recipes/api/production/component

En el request body debemos pasar:


class NewCreateProduction {
String idComponent;
double quantity;
Date date;
}

Retorna un IdWrapper:


class IdWrapper {

String id;
}

id es el identificación de la producción de la elaboración (idProductionComponent).

¿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.


¿Ha quedado contestada tu pregunta?