Skip to content

Commit

Permalink
README update
Browse files Browse the repository at this point in the history
  • Loading branch information
orkhanahmadov committed Dec 8, 2023
1 parent ef11a14 commit fe0af82
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 7 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,25 @@ const { data } = await new Event().get('event-uuid')
```javascript
import { Guest } from '@airlst/sdk'

const { data } = await new Guest('event-uuid').list('guest-code')
const { data } = await new Guest('event-uuid').list({ page: 2, search: 'John' })
```

Method accepts following parameters:

| Parameter | Type | Description |
|----------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `page` | `number` | Page number |
| `perPage` | `number` | Number of items per page |
| `search` | `string` | Quick search |
| `filters` | `array` | Filters arrays |
| `filters.*.field` | `string` | Filter field |
| `filters.*.value` | `string` | Filter field value |
| `filters.*.operator` | `string` | Filter field operator. Optional. One of: `eq` (equal), `neq` (not equal), `like`, `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal). If operator is not provided `eq` will be used as default |
| `sorts` | `array` | Sorts array |
| `sorts.*.field` | `string` | Sort field |
| `sorts.*.direction` | `string` | Sort field direction. One of: `asc` (ascending), `desc` (descending) |
| `sorts.*.order` | `number` | Sort field order. Optional. Defines order/priority of the sort when sorting by multiple fields |

#### Validate guest code

```javascript
Expand Down Expand Up @@ -85,7 +101,7 @@ const { data } = await new Guest('event-uuid').create({
```javascript
import { Guest } from '@airlst/sdk'

const { data } = await new Guest('event-uuid').createCompanion('main-guest-code', {
const { data } = await new Guest('event-uuid').createCompanion('guest-code', {
contact: {
first_name: 'John',
last_name: 'Doe',
Expand Down
6 changes: 4 additions & 2 deletions src/resources/Guest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ export const Guest = class {
)

const query = new URLSearchParams({
search: parameters.search,
page: parameters.page || '1',
perPage: parameters.perPage || '25',
search: parameters.search,
...filters,
...sorts,
}).toString()
Expand Down Expand Up @@ -120,8 +121,9 @@ interface CreateResponseInterface {
}

interface ListParametersInterface {
search: string
page: string
perPage: string
search: string
filters: Array<{
field: string
operator: string
Expand Down
7 changes: 4 additions & 3 deletions tests/resources/Guest.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ afterEach(() => {

test('list()', async () => {
guest.list({
page: 'p',
perPage: 'pp',
search: 's',
filters: [
{ field: 'ff1', operator: 'fo1', value: 'fv1' },
{ field: 'ff2', value: 'fv2' },
Expand All @@ -19,12 +22,10 @@ test('list()', async () => {
{ field: 'sf1', order: 'so1', direction: 'sd1' },
{ field: 'sf2', direction: 'sd2' },
],
search: 's',
page: 'p',
})

const expectedQuery =
'search=s&page=p&filters%28ff1*fo1%29=fv1&filters%28ff2*eq%29=fv2&sorts%28sf1*so1%29=sd1&sorts%28sf2*0%29=sd2'
'page=p&perPage=pp&search=s&filters%28ff1*fo1%29=fv1&filters%28ff2*eq%29=fv2&sorts%28sf1*so1%29=sd1&sorts%28sf2*0%29=sd2'

expect(apiMock).toHaveBeenCalledTimes(1)
expect(apiMock).toHaveBeenCalledWith(
Expand Down

0 comments on commit fe0af82

Please sign in to comment.