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.

  1. 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 booking

    Crear/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

  2. 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"
        }
      ]
    }
    

  3. Marcar Reserva como pagada
    endpoint: api-crt.iboosy.com/erp/booking/paid

    {
      "bookings": [
        {
          "locator": "LOC00012"
        },
        {
          "locator": "LOC00013"
        }
      ]
    }
    

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