Giter Site home page Giter Site logo

quality-desafio's Introduction

Desafío Quality

Hotels API

Resume:

  • List available hotels: GET (/api/v1/hotels).
  • Make hotel booking: POST (/api/v1/articles/booking).

List available hotels:

GET (/api/v1/hotels)

Se pueden recibir 0 o 3 parámetros. Si ingresamos 0, se ven los hoteles disponibles. Si ingresamos los 3 parámetros se filtra según ellos.

No se permite otra cantidad de parámetros.

  • Se valida:
    • que las keys de los parámetros sean los permitidos (hotelCode,name,city,roomType,price,dateFrom,dateTo,reserved).
    • se valida cada value con su respectiva regla según su key.

Make hotel booking:

POST (/api/v1/hotels/booking)

Se debe enviar un Payload como el siguiente:

{
    "userName" : "[email protected]",
    "booking" : {
        "dateFrom" : "10/11/2021",
        "dateTo" : "20/11/2021",
        "destination" : "Buenos Aires",
        "hotelCode" : "CH-0002",
        "peopleAmount" : 2,
        "roomType" : "DOUBLE",
        "people" : [
            {
                "dni" : "12345678",
                "name" : "Pepito",
                "lastName" : "Gomez",
                "birthDate" : "10/11/1982",
                "mail" : "[email protected]"
            },
             {
                "dni" : "13345678",
                "name" : "Fulanito",
                "lastName" : "Gomez",
                "birthDate" : "10/11/1983",
                "mail" : "[email protected]"
            }
        ],
        "paymentMethod" : {
            "type" : "CREDIT",
            "number" : "1234-1234-1234-1234",
            "dues" : 6
        }
    }
}

Se valida cada uno de los campos del Payload: userName, booking (todos los parámetros, incluyendo los PeopleDTO de la List), y el paymentMethod.

Se hacen todas las validaciones especificadas en la letra:

  • Si todo está OK:
    • se realiza el Booking, cambiando el reserved del hotel.
    • se devuelve un ResponseDTO.

Flights API

Resume:

  • List available flights: GET (/api/v1/flights).
  • Make flight reservation: POST (/api/v1/articles/flight-reservation).

List available flights:

GET (/api/v1/flights)

Se pueden recibir 0 o 4 parámetros. Si ingresamos 0, se ven todos los vuelos. Si ingresamos los 4 parámetros se filtra según ellos.

No se permite otra cantidad de parámetros. Se valida lo mismo que en HotelDTO, aplicado sobre FlightDTO.

Make flight reservation

POST (/api/v1/flights/make-reservation)

Se debe enviar un Payload como el siguiente:

{
    "userName" : "[email protected]",
    "flightReservation" : {
        "dateFrom" : "10/11/2021",
        "dateTo" : "20/11/2021",
        "origin" : "Buenos Aires",
        "destination" : "Puerto Iguazú",
        "flightNumber" : "BAPI-1235",
        "seats" : 2,
        "seatType" : "ECONOMY",
        "people" : [
            {
                "dni" : "12345678",
                "name" : "Pepito",
                "lastName" : "Gomez",
                "birthDate" : "10/11/1982",
                "mail" : "[email protected]"
            },
             {
                "dni" : "13345678",
                "name" : "Fulanito",
                "lastName" : "Gomez",
                "birthDate" : "10/11/1983",
                "mail" : "[email protected]"
            }
        ],
        "paymentMethod" : {
            "type" : "CREDIT",
            "number" : "1234-1234-1234-1234",
            "dues" : 6
        }
    }
}

Se valida cada uno de los campos del Payload: userName, flightReservation (todos los parámetros, incluyendo los PeopleDTO de la List), y el paymentMethod.

Se hacen todas las validaciones especificadas en la letra.

  • Si todo está OK:
    • se elimina el vuelo de la base de datos.
    • se devuelve un ResponseDTO.

quality-desafio's People

Contributors

sogliano avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.