@karhoo/demand-bloc-quotes
TypeScript icon, indicating that this package has built-in type declarations

20.1.2 • Public • Published
Karhoo logo

demand-bloc-quotes

BLoC to work with Karhoo Quotes API


License

Installation

npm i @karhoo/demand-bloc-quotes

Usage

import { getApi } from '@karhoo/demand-api'
import { QuotesBloc } from '@karhoo/demand-bloc-quotes'

const api = getApi({
  url: 'api',
  defaultRequestOptionsGetter: () => ({
    headers: {
      identifier: 'XXXX',
      referrer: 'https://example-referer.com/'
    }
  })
})

/*
* The latitude in degrees. It must be in the range [-90.0, +90.0], with at least 4  decimal digits of precision.
* The longitude in degrees. It must be in the range [-180.0, +180.0], with at least 4  decimal digits of precision.
*/
const quotesSearchParams = {
  origin: {
    latitude: '51.501364',
    longitude: '-0.14189',
    displayAddress: 'Buckingham Palace, London SW1A 1AA',
  },
  destination: {
    latitude: '41.78650',
    longitude: '1.78954',
    displayAddress: 'Big Ben, Westminster, London SW1A 0AA, UK',
  },
  localTimeOfPickup: "2020-05-20T12:00"
}

/*
* quotesService use quotes V1 API which is depricated. Use quotesV2Service instead
*/
const quotesBloc = new QuotesBloc(api.quotesV2Service)

quotesBloc.filters = {
  numOfLuggage: 2,
  numOfPassengers: 2,
}

quotesBloc.matchingQuotes.subscribe((data) => {
  // quotes that accepts 2 passengers and 2 bags
  console.log('Matching quotes', data)
})

quotesBloc.otherAvailibleQuotes.subscribe((data) => {
  // all other quotes that did not match filters
  console.log('Other quotes', data)
})

quotesBloc.loading.subscribe(isLoading => {
  console.log('isLoading', isLoading)
})

quotesBloc.quotesExpired.subscribe(() => {
  console.log('Quotes Expired')

  quotesBloc.refreshQuotes() // requests quotes with same search params
})

quotesBloc.requestQuotes(quotesSearchParams)

Readme

Keywords

Package Sidebar

Install

npm i @karhoo/demand-bloc-quotes

Weekly Downloads

3

Version

20.1.2

License

BSD-2-Clause

Unpacked Size

342 kB

Total Files

41

Last publish

Collaborators

  • karhoo_js
  • karhoo_ops_tooling
  • karhoo_connect
  • karhoo_demand_web
  • karhoo_partner_central