Booking Webservice Methabook
WebService:
Son 4 funciones a implementar que iran asociados a un cron:
1. Procesar JSON de con todas las reservas tras GET a la api
2. PUT a la api con de las reservas, customer y suppliers procesados.
3. PUT para marcar reservas como pagadas.
4. PUT para indicar si el cliente tiene credito o no. (Controlar segun las fechas del ultimo barrido realizado y filtrar por todos los clientes con cambios en el campo credit).
Generar estructura definida para el PUT a la API.
-
Procesado de JSON:
endpoint: api-crt.iboosy.com/erp/export
Recorremos el json de forma unidireccional para procesar los bookings que a priori tengan estos dos campos.
Cada “booking del json” corresponde al objeto bookingCrear/actualizar ==> Crear/actualizar ==> Crear/Actualizar solo reservas
customer suplier con Customer y supplier
| | no incluidos en listas de
| | no validos
* *
Generar lista Generar lista
de no validos de no validos -
Put a la api api de las reservas, customer y suppliers procesados.
endpoint: api-crt.iboosy.com/erp/export/confirm
{ "exportId": "f4922009-51ba-4ea3-b71f-dc6c5a627079", "exportedAt": "2017/06/01 15:32", "customers": [ { "account": "4300000058" } ], "suppliers": [ { "account": "4300000058" } ], "bookings": [ { "locator": "4300000058" }, { "locator": "LOCXXXXX" } ] }
-
Marcar Reserva como pagada
endpoint: api-crt.iboosy.com/erp/booking/paid
{ "bookings": [ { "locator": "LOC00012" }, { "locator": "LOC00013" } ] }
-
Actualizar Credito del cliente:
endpoint: api-crt.iboosy.com/erp/customer/changecredit
{ "Account":”4300000058”, “WithCredit”: true }
Vistas Webservice (parte mas verde):
Menu Reservas/ Configuración / Webservice
Lo deseable sería ver desde el webservice una vista tree con todos los “exports diarios de JSON”.
tras pinchar y meterse. ver el log de lo no procesado en el proceso de creacion de bookings. (hacer mix entre echo en petroprix y JUNIPER Webservice) e indicar el numero de bookings procesados y no procesados por falta de datos.
-En principio los endpoint menos el de exportación. estan a “fuego”
TESTS:
En el directorio test hay tres ficheros:
* el servidor: levanta el “servicio” de la api.
* api.py: para las pruebas de la estructura del JSON.
* test_webservice_methabook.py : para lanzar el procesado de las reservas
Para realizar las pruebas debemos lanzar el servidor Fake en el propio directorio de tests:
$ python web-server_api.py
nos proporciona la “api” con dos rutas para realizar los GET de exportación de reservas:
- http://localhost:8080/
nos da un json con los datos que nos proporciono iboosy al principio.
contienen datos insuficiones en campos de customer,booking,suppliers.
- http://localhost:8080/content2
nos da un json con datos reales, pero faltan Zones, para componer el lugar de la reserva.