1. Creación de eventos
Esta interficie REST permite a los sistemas externos crear eventos con sus correspondientes menús en tSpoonLab. Cada evento tiene obligatoriamente un código y una descripcón. Este código es el que nos permitirá actualizar el evento en posteriores llamadas. Cada evento tiene asociado un grupo de platos (aperitivos, primeros, segundos, postres) y sus correspondientes platos también con código y descripión. En caso de no existir alguno de los platos en tSpoonLab se creará un nuevo plato en el sistema con dicho código y descripción.
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. Creación/Actualización de eventos
Para crear y/o actualizar los eventos, menus y platos se realizará la sigüente llamada REST
POST: https://www.tspoonlab.com/recipes/api/integration/event
En el Request body se adjuntará el evento con sus correspondientes datos representado por la classe Event
public class Event {
private String code; // Código del evento. Obligatorio
private String descr; // Descripción del evento. Obligatorio
private Integer pax; // Pax
private Date date; // Fecha evento
private String codeClient; // Codigo del cliente
private String descrClient; // Descripcion del cliente
private Short version; // Version del menu. Si se envia varias veces.
private short state; // Estado del evento si esta aprovado, cancelado, ofertado etc...
/*
public static final short offer = 0;
public static final short approved = 1;
public static final short cancelled = 2;
public static final short done = 3;
public static final short opportunity = 4;
public static final short rejected = 5;
*/
private List<EventMenuGroup> listGroups; // Lista de grupos de platos
}
El evento esta compuesto de grupos que se corresponden a las diferentes fases del mismo: Aperitivo, primero, segundo, postre
public class EventMenuGroup {
private String descr; // Grupo de platos. Aperitivos, principales, postres
private List<EventMenuGroupComponent> listComponents;
}
Cada EventMenuGroup tiene sus correspondientes platos
public class EventMenuGroupComponent {
private String codi; // Codigo del plato
private String descr; // Nombre del plato
private Double quantity; // Nombre del plato
}