From fe0af82783065ec9a0de9d523a7db5895deccb75 Mon Sep 17 00:00:00 2001 From: Orkhan Ahmadov Date: Fri, 8 Dec 2023 13:37:23 +0100 Subject: [PATCH] README update --- README.md | 20 ++++++++++++++++++-- src/resources/Guest.ts | 6 ++++-- tests/resources/Guest.spec.ts | 7 ++++--- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a43c73c..7b93668 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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', diff --git a/src/resources/Guest.ts b/src/resources/Guest.ts index a6ba2bb..6efe433 100644 --- a/src/resources/Guest.ts +++ b/src/resources/Guest.ts @@ -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() @@ -120,8 +121,9 @@ interface CreateResponseInterface { } interface ListParametersInterface { - search: string page: string + perPage: string + search: string filters: Array<{ field: string operator: string diff --git a/tests/resources/Guest.spec.ts b/tests/resources/Guest.spec.ts index 8f664c3..bdf9b4c 100644 --- a/tests/resources/Guest.spec.ts +++ b/tests/resources/Guest.spec.ts @@ -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' }, @@ -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(