@heisterkamp/requestbuilder
Constructs a Json:api compliant url.
Last updated 2 months ago by heisterkamp .
ISC · Original npm · Tarball · package.json
$ cnpm install @heisterkamp/requestbuilder 
SYNC missed versions from official npm registry.

requestbuilder

Constructs a Json:api compliant url.

The module is available as a public package on npmjs.com. It will either be marked as a private package or moved to an npm library on GitLab.

Installation

npm install --save @heisterkamp/requestbuilder

Usage

  • import the RequestBuilder class
  • create a builder
  • compile with Webpack

>= v1.0.6

Features

Type Example
Equal to .where('location', 'Zwolle')
Not equal to .whereNot('location', 'Zwolle')
Less than .lessThan('mileage', 10000)
Less than or equal to .lessThanOrEqualTo('mileage', 10000)
Greater than .greaterThan('mileage', 10000)
Greater than or equal to .greaterThanOrEqualTo('mileage', 10000)
Is null .whereNull('location')
Is not null .whereNotNull('direction')
In .whereIn('location', 'Utrecht,Enschede,Rotterdam')
Not in .whereNotIn('location', 'Utrecht,Enschede,Rotterdam')
Sorting .sort('-mileage')
Projection .fields('id,trailer_number,')
Include subresource .include('sensors')

Example

import RequestBuilder from 'node_modules/@heisterkamp/requestbuilder/requestBuilder.module';

const host = '...';

// Get token and then do requests
let rb = new RequestBuilder(host + '/api/app/v1/auth');
rb.setMethod('POST');
rb.setBody({login: '...', password: '...'});

rb.get()
    .then(response => {

        let rb = new RequestBuilder(host + '/api/app/v1/trailers');
        rb.setHeaders({Authorization: 'Bearer ' + response.body.token});

        // All trailers
        rb
            .get()
            .then(response => { ... });

        // All trailers in Zwolle
        rb
            .where('location', 'Zwolle')
            .get()
            .then(response => { ... });

        rb.reset();

        // All trailer ids, numbers, license plates and mileage,
        //  in Utrecht, Enschede or Rotterdam,
        //  having a mileage lower than 10.000,
        //  including their sensor data,
        //  ordered on mileage descending.
        rb
            .fields('id,trailer_number,license_plate,mileage')
            .whereIn('location', 'Utrecht,Enschede,Rotterdam')
            .lessThan('mileage', 10000)
            .include('sensors')
            .sort('-mileage')
            .get()
            .then(response => { ... });
    });

< v1.0.6

Features

method function
where Add a where clause
whereNotNull Add a whereNotNull clause
greaterThanDateTime Filter on date
lessThanDateTime Filter on date
reset Reset the builder
get Get the data and process it with a callback

Example

import RequestBuilder from 'node_modules/@heisterkamp/requestbuilder/requestBuilder.module';

carService = 'http://***/api/v1/cars';
let requestBuilder = new RequestBuilder(`${carService}/123`)
    .with('positions')
    .where('location', 'Amsterdam')
    .whereNotNull('driverId')
    .greaterThanDateTime('positionTime', '2019-07-26T16:00:00+01:00')
    .get(this.processData.bind(this))
;

processData(data)
{
    console.log(JSON.parse(data));
}

Current Tags

  • 1.0.8                                ...           latest (2 months ago)

7 Versions

  • 1.0.8                                ...           2 months ago
  • 1.0.6                                ...           2 months ago
  • 1.0.5                                ...           3 months ago
  • 1.0.4                                ...           4 months ago
  • 1.0.3                                ...           6 months ago
  • 1.0.2                                ...           6 months ago
  • 1.0.1                                ...           6 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 7
Last Month 7
Dependencies (1)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |