Skip to content

AndrewVolostnykh/viewton-query-builder-4js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Viewton Request Builder

This is a Parameter Builder for the Viewton library, designed to make constructing client-side queries more declarative and easier.

It is intended for use in environments where JavaScript is used for implementing client side (for instance classical font-end).

It is a full analog of the ViewtonQueryBuilder.

The builder includes all parameters that can be used when constructing a query to the backend.

Usage

To use, simply inherit from the ViewtonQueryBuilder class and specify which fields can be used in the query construction.

Example:

Base Class:

class SomeClass { id: number; name: string; date:Date constructor(id: number, name: string, date:Date) { this.id = id; this.name = name; this.date = date; } }

Builder:

class SomeClassQueryBuilder extends ViewtonQueryBuilder { id():FilterBuilder<SomeClassQueryBuilder> { return super.param('id'); } name():FilterBuilder<SomeClassQueryBuilder> { return super.param('name'); } date():FilterBuilder<SomeClassQueryBuilder> { return super.param('date') } }

Using the Builder:

 return new SomeClassQueryBuilder() .id().or(1).or(2).or(3).next() .name().ignoreCase().equalsTo('%name%') .date().between('someDate', 'someAnotherDate') .page(1) .pageSize(10) .distinct() .count() .build();

Result:

Map(7) { 'id' => '1', 'name' => '^%name%', 'date' => 'someDate..someAnotherDate', 'page' => '1', 'page_size' => '10', 'distinct' => 'true', 'count' => 'true' } 

The result is a Map<string, string>, which can be used for constructing GET requests as query parameters.

About

ViewtonRequestBuilder for Viewton library

Topics

Resources

Stars

Watchers

Forks