@revolugo/booking-api-client
Version:
Javascript Revolugo Booking API Client (browser + server)
77 lines (58 loc) • 2.24 kB
Markdown
# Revolugo Booking API Client
The Revolugo Booking API Client provides convenient access to the Revolugo Booking API from
applications written in server-side JavaScript or for browser based applications. This client exposes Typescript types.
See the [Revolugo Booking API documentation](https://booking-api.revolugo.com/v1/documentation).
````
## Getting Started
### Import & Configure
```js
import { ApiClient } from '@revolugo/booking-api-client'
const revolugoApiClient = new ApiClient({
apiEnvironment: Revolugo.Environment.LIVE,
apiKey: '<public-or-private-api-key-here>',
apiVersion: 'v1',
})
````
#### Configuration
| Option | Default | Description |
| ---------------- | -------- | ------------------------------------------------------------ | -------------------- | -------- | -------- | ---------------------------------------------- |
| `apiEnvironment` | Required | Target environment for the client (Environment.PRODUCTION \ | Environment.SANDBOX) | `apiKey` | Required | Public or Private Api Key provided by Revolugo |
| `apiVersion` | Required | Api version |
## Usage
See the [Revolugo Booking API documentation](https://booking-api.revolugo.com/v1/documentation) for details about request/reponse data.
```js
const hotelOfferRequest = await revolugoApiClient.hotelOfferRequests.create({
adult_count: 5,
check_in_date: '2021-05-30',
check_out_date: '2021-06-02',
children: '2,8',
latitude: 45.76405021831942,
longitude: 4.835700988769532,
room_count: 3,
source_market: 'FR',
})
```
### Polling
Some endpoints require polling to get the complete result. Polling is already handled by the library:
```js
revolugoApiClient.hotelOffers.list(
{
currency: HotelOffersCurrencyEnum.Eur,
hotelOfferRequestId: 'xxxx-xxxx-xxxx-xxxx-xxxx',
},
(err, result) => {
if (err) {
console.log('Error while Polling')
handleError(err)
return
}
if (result.meta.status === 'in-progress') {
console.log('Still Polling')
doSomething(result)
} else {
console.log('Done Polling')
doSomethingElse(result)
}
},
)
```