1.0.8 • Published 5 years ago

@heisterkamp/requestbuilder v1.0.8

Weekly downloads
12
License
ISC
Repository
-
Last release
5 years ago

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

TypeExample
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

methodfunction
whereAdd a where clause
whereNotNullAdd a whereNotNull clause
greaterThanDateTimeFilter on date
lessThanDateTimeFilter on date
resetReset the builder
getGet 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));
}
1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago