Skip to content

travelhubapi/travelhubapi-node-sdk

Repository files navigation

TravelhubApi SDK

Node.js Sdk for TravelhubApi

Dependencies Status Build Status Issue Count Test Coverage


  1. Installation
  2. Usage

Installation

npm install travelhubapi-sdk

Usage

Creating client

Options

The TravelhubApiSDK instance accepts these options upon initialization

Param Description required Default
clientId Your client id. true undefined
clientSecret Your client secret. true undefined
enviroment flag to use production URls or staging false staging
language default language for messages false pt-BR

Example

const TravelhubApiSDK = require('travelhubapi-sdk');

const thubSDK = new TravelhubApiSDK({
  clientId: process.env.TRAVELHUBAPI_CLIENT_ID,
  clientSecret: process.env.TRAVELHUBAPI_CLIENT_SECRET,
  enviroment: process.env.NODE_ENV === 'production' ? 'production' : 'staging', //default: will use staging urls
});

Using as request-promise

const options = {
  qs: {
    limit: 2,
  },
};
thubSDK.get('http://hotel.stg.travelhubapi.com.br/v1/locations/sao', options)
  .then((response) => {
    const locations = response.body;
  });

See documentation

Using facilitators

HotelSDK

Example

//sending a booking request

// #1 search locations with hotels in São Paulo
thubSDK.hotel.getLocations({description: 'sao paulo', limit: 1})
  .then(function (result) {
    const locations = result.content;
    const location = locations.items[0];
    const params = {
      locationId: location.id,
      checkIn: '2016-08-30',
      checkOut: '2016-08-31',
      rooms: [
        {
          adt: 1,
          chd: 1,
          bed: 'Double',
          chdAges: [3]
        }
      ]
    };
// #2 search availability of hotels as needs
    return thubSDK.hotel.getAvailabilities(params);
  })
  .then(function (result) {
    const availabilities = result.content;
    const hotel = availabilities.items[0].hotels.items[0];
    const accommodation = hotel.accommodations.items[0];

    accommodation.guests = {
      "items": [
        {
          "firstName": "Fulano",
          "lastName": "de Tal",
          "document": {
            "type": "IndividualRegistrationCode",
            "number": "12345678910"
          },
          "gender": "Male",
          "guestType": "Adt",
          "birthDate": "1988-07-27"
        },
        {
          "firstName": "Siclana",
          "lastName": "de Tal",
          "gender": "Female",
          "guestType": "Chd",
          "birthDate": "2013-11-20"
        }
      ]
    };
    hotel.accommodations.items = [accommodation];
    const booking = {
      checkIn: '2016-08-30',
      checkOut: '2016-08-31',
      hotel: hotel,
      vendor: {
        id: "marcos.rava@flytour.com.br"
      },
    };
// #3 send a booking request for the selected hotel
    return thubSDK.hotel.book(booking)
  })
  .then(function (result) {
    console.log(result);
    return result;
  })
  .catch(function (err) {
    console.error(err.statusCode);
    throw err;
  });

See documentation

For more details please check the full documentation