@ikatec/digisac-api-sdk 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{chunk-DortyG5C.cjs → chunk-Dk0Otj32.cjs} +19 -0
- package/dist/_chunks/scopes-CppNX42t.mjs +29 -0
- package/dist/_chunks/scopes-CppNX42t.mjs.map +1 -0
- package/dist/apis/authHistory/AuthHistoryApi.cjs +1 -1
- package/dist/apis/campaigns/CampaignsApi.cjs +56 -0
- package/dist/apis/campaigns/CampaignsApi.cjs.map +1 -1
- package/dist/apis/campaigns/CampaignsApi.d.ts +25 -3
- package/dist/apis/campaigns/CampaignsApi.d.ts.map +1 -1
- package/dist/apis/campaigns/CampaignsApi.mjs +56 -0
- package/dist/apis/campaigns/CampaignsApi.mjs.map +1 -1
- package/dist/apis/campaigns/index.cjs +8 -1
- package/dist/apis/campaigns/index.d.ts +1 -0
- package/dist/apis/campaigns/index.d.ts.map +1 -1
- package/dist/apis/campaigns/index.mjs +2 -1
- package/dist/apis/campaigns/scopes/getManyViewScope.cjs +51 -0
- package/dist/apis/campaigns/scopes/getManyViewScope.cjs.map +1 -0
- package/dist/apis/campaigns/scopes/getManyViewScope.d.ts +21 -0
- package/dist/apis/campaigns/scopes/getManyViewScope.d.ts.map +1 -0
- package/dist/apis/campaigns/scopes/getManyViewScope.mjs +49 -0
- package/dist/apis/campaigns/scopes/getManyViewScope.mjs.map +1 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.cjs +27 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.cjs.map +1 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.d.ts +5 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.d.ts.map +1 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.mjs +25 -0
- package/dist/apis/campaigns/scopes/getOneViewScope.mjs.map +1 -0
- package/dist/apis/campaigns/scopes/index.cjs +21 -0
- package/dist/apis/campaigns/scopes/index.cjs.map +1 -0
- package/dist/apis/campaigns/scopes/index.d.ts +3 -0
- package/dist/apis/campaigns/scopes/index.d.ts.map +1 -0
- package/dist/apis/campaigns/scopes/index.mjs +4 -0
- package/dist/apis/campaigns/types.d.ts +69 -16
- package/dist/apis/campaigns/types.d.ts.map +1 -1
- package/dist/apis/contacts/ContactsApi.cjs +1 -1
- package/dist/apis/files/types.d.ts +1 -0
- package/dist/apis/files/types.d.ts.map +1 -1
- package/dist/apis/index.cjs +174 -0
- package/dist/apis/index.d.ts +56 -0
- package/dist/apis/index.d.ts.map +1 -0
- package/dist/apis/index.mjs +113 -0
- package/dist/apis/messages/MessagesApi.cjs +1 -1
- package/dist/apis/messages/types.d.ts +2 -1
- package/dist/apis/messages/types.d.ts.map +1 -1
- package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.cjs +1 -1
- package/dist/apis/stickerUsers/StickerUsersApi.cjs +1 -1
- package/dist/apis/terms/TermsApi.cjs +1 -1
- package/dist/core/BaseCrudApi.cjs +9 -3
- package/dist/core/BaseCrudApi.cjs.map +1 -1
- package/dist/core/BaseCrudApi.d.ts +3 -3
- package/dist/core/BaseCrudApi.d.ts.map +1 -1
- package/dist/core/BaseCrudApi.mjs +8 -2
- package/dist/core/BaseCrudApi.mjs.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/types.d.ts +3 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/apis/campaigns/CampaignsApi.ts +80 -3
- package/src/apis/campaigns/index.ts +1 -0
- package/src/apis/campaigns/scopes/getManyViewScope.ts +79 -0
- package/src/apis/campaigns/scopes/getOneViewScope.ts +21 -0
- package/src/apis/campaigns/scopes/index.ts +2 -0
- package/src/apis/campaigns/types.ts +73 -16
- package/src/apis/files/types.ts +1 -0
- package/src/apis/index.ts +55 -0
- package/src/apis/messages/types.ts +2 -1
- package/src/core/BaseCrudApi.test.ts +1 -1
- package/src/core/BaseCrudApi.ts +14 -3
- package/src/core/index.ts +1 -1
- package/src/core/types.ts +8 -1
- package/src/index.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCrudApi.cjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {\n protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = client\n this.basePath = basePath.replace(/\\/$/, '')\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string
|
|
1
|
+
{"version":3,"file":"BaseCrudApi.cjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, GetByIdQuery, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n GetByIdQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {\n protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = client\n this.basePath = basePath.replace(/\\/$/, '')\n this.getMany = this.getMany.bind(this)\n this.getById = this.getById.bind(this)\n this.create = this.create.bind(this)\n this.updateById = this.updateById.bind(this)\n this.deleteById = this.deleteById.bind(this)\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(\n id: string,\n query?: GetByIdQuery<TResponse>,\n headers?: Record<string, string>,\n ): Promise<TResponse> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<TResponse>(`${this.basePath}/${id}${queryString}`, headers)\n }\n\n /**\n * Creates a new resource.\n * @permissions $resourceName.create\n */\n create(body: TCreate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.post<TResponse, TCreate>(this.basePath, body, headers)\n }\n\n /**\n * Updates an existing resource by ID.\n * @permissions $resourceName.update\n */\n updateById(id: string, body: TUpdate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.put<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)\n }\n\n /**\n * Deletes a resource by ID.\n * @permissions $resourceName.delete\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.delete<TResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";;;;;;AAiBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;AAC3C,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,SAAS,KAAK,OAAO,KAAK,KAAK;AACpC,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;AAC5C,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;;CAW9C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QACE,IACA,OACA,SACoB;EACpB,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,KAAK,eAAe,QAAQ;;;;;;CAOpF,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOrF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ApiClient } from './ApiClient';
|
|
2
|
-
import type { CrudApi, ListQuery, Paginated } from './types';
|
|
3
|
-
export type { WhereClause, IncludeItem, ListQuery, Paginated, HasGetMany, HasGetById, HasCreate, HasUpdateById, HasDeleteById, CrudApi, } from './types';
|
|
2
|
+
import type { CrudApi, GetByIdQuery, ListQuery, Paginated } from './types';
|
|
3
|
+
export type { WhereClause, IncludeItem, ListQuery, GetByIdQuery, Paginated, HasGetMany, HasGetById, HasCreate, HasUpdateById, HasDeleteById, CrudApi, } from './types';
|
|
4
4
|
export declare class BaseCrudApi<TResponse, TCreate, TUpdate = TCreate, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {
|
|
5
5
|
protected readonly client: ApiClient;
|
|
6
6
|
protected readonly basePath: string;
|
|
@@ -15,7 +15,7 @@ export declare class BaseCrudApi<TResponse, TCreate, TUpdate = TCreate, TQuery e
|
|
|
15
15
|
* Returns a single resource by ID.
|
|
16
16
|
* @permissions $resourceName.view
|
|
17
17
|
*/
|
|
18
|
-
getById(id: string, headers?: Record<string, string>): Promise<TResponse>;
|
|
18
|
+
getById(id: string, query?: GetByIdQuery<TResponse>, headers?: Record<string, string>): Promise<TResponse>;
|
|
19
19
|
/**
|
|
20
20
|
* Creates a new resource.
|
|
21
21
|
* @permissions $resourceName.create
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCrudApi.d.ts","sourceRoot":"","sources":["../../src/core/BaseCrudApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"BaseCrudApi.d.ts","sourceRoot":"","sources":["../../src/core/BaseCrudApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,GACR,MAAM,SAAS,CAAA;AAEhB,qBAAa,WAAW,CACtB,SAAS,EACT,OAAO,EACP,OAAO,GAAG,OAAO,EACjB,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAC1D,YAAW,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IACpC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEvB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAU/C,OAAO,CACL,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,EAAE,CAAC;IACvB,OAAO,CACL,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAYhC;;;OAGG;IACH,OAAO,CACL,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;IAKrB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3E;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3F;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;CAG7E"}
|
|
@@ -7,6 +7,11 @@ var BaseCrudApi = class {
|
|
|
7
7
|
constructor(client, basePath) {
|
|
8
8
|
this.client = client;
|
|
9
9
|
this.basePath = basePath.replace(/\/$/, "");
|
|
10
|
+
this.getMany = this.getMany.bind(this);
|
|
11
|
+
this.getById = this.getById.bind(this);
|
|
12
|
+
this.create = this.create.bind(this);
|
|
13
|
+
this.updateById = this.updateById.bind(this);
|
|
14
|
+
this.deleteById = this.deleteById.bind(this);
|
|
10
15
|
}
|
|
11
16
|
getMany(query, headers) {
|
|
12
17
|
const queryString = query ? `?${qs.stringify(query)}` : "";
|
|
@@ -16,8 +21,9 @@ var BaseCrudApi = class {
|
|
|
16
21
|
* Returns a single resource by ID.
|
|
17
22
|
* @permissions $resourceName.view
|
|
18
23
|
*/
|
|
19
|
-
getById(id, headers) {
|
|
20
|
-
|
|
24
|
+
getById(id, query, headers) {
|
|
25
|
+
const queryString = query ? `?${qs.stringify(query)}` : "";
|
|
26
|
+
return this.client.get(`${this.basePath}/${id}${queryString}`, headers);
|
|
21
27
|
}
|
|
22
28
|
/**
|
|
23
29
|
* Creates a new resource.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCrudApi.mjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {\n protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = client\n this.basePath = basePath.replace(/\\/$/, '')\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string
|
|
1
|
+
{"version":3,"file":"BaseCrudApi.mjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, GetByIdQuery, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n GetByIdQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {\n protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = client\n this.basePath = basePath.replace(/\\/$/, '')\n this.getMany = this.getMany.bind(this)\n this.getById = this.getById.bind(this)\n this.create = this.create.bind(this)\n this.updateById = this.updateById.bind(this)\n this.deleteById = this.deleteById.bind(this)\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(\n id: string,\n query?: GetByIdQuery<TResponse>,\n headers?: Record<string, string>,\n ): Promise<TResponse> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<TResponse>(`${this.basePath}/${id}${queryString}`, headers)\n }\n\n /**\n * Creates a new resource.\n * @permissions $resourceName.create\n */\n create(body: TCreate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.post<TResponse, TCreate>(this.basePath, body, headers)\n }\n\n /**\n * Updates an existing resource by ID.\n * @permissions $resourceName.update\n */\n updateById(id: string, body: TUpdate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.put<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)\n }\n\n /**\n * Deletes a resource by ID.\n * @permissions $resourceName.delete\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.delete<TResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";;;AAiBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;AAC3C,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,SAAS,KAAK,OAAO,KAAK,KAAK;AACpC,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;AAC5C,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;;CAW9C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QACE,IACA,OACA,SACoB;EACpB,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,KAAK,eAAe,QAAQ;;;;;;CAOpF,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOrF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export type { ApiClient, HttpMethod } from './ApiClient';
|
|
|
2
2
|
export { BaseApiClient, ApiError } from './BaseApiClient';
|
|
3
3
|
export type { ValidationError } from './BaseApiClient';
|
|
4
4
|
export { BaseCrudApi } from './BaseCrudApi';
|
|
5
|
-
export type { WhereClause, IncludeItem, ListQuery, Paginated } from './types';
|
|
5
|
+
export type { WhereClause, IncludeItem, ListQuery, GetByIdQuery, Paginated } from './types';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ type TypedIncludeObject<T> = {
|
|
|
51
51
|
[K in AssociationKeys<T>]: {
|
|
52
52
|
model: K;
|
|
53
53
|
as?: string;
|
|
54
|
+
attributes?: (keyof Unwrap<T[K]> & string)[];
|
|
54
55
|
include?: IncludeItem<Unwrap<T[K]>>[];
|
|
55
56
|
required?: boolean;
|
|
56
57
|
where?: WhereClause<Unwrap<T[K]>>;
|
|
@@ -91,8 +92,9 @@ export interface HasGetMany<TResponse, TQuery extends ListQuery<TResponse> = Lis
|
|
|
91
92
|
paginate?: true;
|
|
92
93
|
}, headers?: Record<string, string>): Promise<Paginated<TResponse>>;
|
|
93
94
|
}
|
|
95
|
+
export type GetByIdQuery<T = Record<string, unknown>> = Pick<ListQuery<T>, 'include' | 'attributes'>;
|
|
94
96
|
export interface HasGetById<TResponse> {
|
|
95
|
-
getById(id: string, headers?: Record<string, string>): Promise<TResponse>;
|
|
97
|
+
getById(id: string, query?: GetByIdQuery<TResponse>, headers?: Record<string, string>): Promise<TResponse>;
|
|
96
98
|
}
|
|
97
99
|
export interface HasCreate<TResponse, TCreate> {
|
|
98
100
|
create(body: TCreate, headers?: Record<string, string>): Promise<TResponse>;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './core
|
|
1
|
+
export * from './core';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikatec/digisac-api-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
"import": "./dist/index.mjs",
|
|
13
13
|
"require": "./dist/index.cjs"
|
|
14
14
|
},
|
|
15
|
+
"./apis": {
|
|
16
|
+
"typescript": "./src/apis/index.ts",
|
|
17
|
+
"types": "./dist/apis/index.d.ts",
|
|
18
|
+
"import": "./dist/apis/index.mjs",
|
|
19
|
+
"require": "./dist/apis/index.cjs"
|
|
20
|
+
},
|
|
15
21
|
"./incommingWebhooks": {
|
|
16
22
|
"typescript": "./src/incommingWebhooks/index.ts",
|
|
17
23
|
"types": "./dist/incommingWebhooks/index.d.ts",
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import type { ApiClient } from '../../core
|
|
2
|
-
import { BaseCrudApi } from '../../core
|
|
3
|
-
import type {
|
|
1
|
+
import type { ApiClient } from '../../core'
|
|
2
|
+
import { BaseCrudApi } from '../../core'
|
|
3
|
+
import type {
|
|
4
|
+
AutoPauseModePayload,
|
|
5
|
+
Campaign,
|
|
6
|
+
CampaignStats,
|
|
7
|
+
CreateCampaignPayload,
|
|
8
|
+
ExportCampaignResultPayload,
|
|
9
|
+
ExportTemplateCsvPayload,
|
|
10
|
+
HsmLimit,
|
|
11
|
+
SetIntervalPayload,
|
|
12
|
+
UpdateCampaignPayload,
|
|
13
|
+
} from './types'
|
|
4
14
|
|
|
5
15
|
export class CampaignsApi extends BaseCrudApi<
|
|
6
16
|
Campaign,
|
|
@@ -9,5 +19,72 @@ export class CampaignsApi extends BaseCrudApi<
|
|
|
9
19
|
> {
|
|
10
20
|
constructor(client: ApiClient) {
|
|
11
21
|
super(client, '/campaigns')
|
|
22
|
+
|
|
23
|
+
this.sendById = this.sendById.bind(this)
|
|
24
|
+
this.pauseById = this.pauseById.bind(this)
|
|
25
|
+
this.resumeById = this.resumeById.bind(this)
|
|
26
|
+
this.duplicateById = this.duplicateById.bind(this)
|
|
27
|
+
this.getStatsById = this.getStatsById.bind(this)
|
|
28
|
+
this.setIntervalById = this.setIntervalById.bind(this)
|
|
29
|
+
this.getContactCount = this.getContactCount.bind(this)
|
|
30
|
+
this.setAutoPauseMode = this.setAutoPauseMode.bind(this)
|
|
31
|
+
this.exportCampaignResult = this.exportCampaignResult.bind(this)
|
|
32
|
+
this.exportTemplateCsv = this.exportTemplateCsv.bind(this)
|
|
33
|
+
this.getHsmLimit = this.getHsmLimit.bind(this)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Starts sending messages for the given campaign. */
|
|
37
|
+
sendById(id: string): Promise<Campaign> {
|
|
38
|
+
return this.client.post<Campaign>(`${this.basePath}/${id}/send`)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Pauses a campaign that is currently sending. */
|
|
42
|
+
pauseById(id: string): Promise<Campaign> {
|
|
43
|
+
return this.client.post<Campaign>(`${this.basePath}/${id}/pause`)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Resumes a previously paused campaign. */
|
|
47
|
+
resumeById(id: string): Promise<Campaign> {
|
|
48
|
+
return this.client.post<Campaign>(`${this.basePath}/${id}/resume`)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Creates a copy of an existing campaign. */
|
|
52
|
+
duplicateById(id: string): Promise<Campaign> {
|
|
53
|
+
return this.client.post<Campaign>(`${this.basePath}/${id}/duplicate`)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Returns send/delivery/view statistics for a campaign. */
|
|
57
|
+
getStatsById(id: string): Promise<CampaignStats> {
|
|
58
|
+
return this.client.get<CampaignStats>(`${this.basePath}/${id}/stats`)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Updates the min/max send interval for a campaign. */
|
|
62
|
+
setIntervalById(id: string, data: SetIntervalPayload): Promise<Campaign> {
|
|
63
|
+
return this.client.post<Campaign, SetIntervalPayload>(`${this.basePath}/${id}/interval`, data)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Returns the total number of contacts targeted by a campaign. */
|
|
67
|
+
getContactCount(id: string): Promise<number> {
|
|
68
|
+
return this.client.get<number>(`${this.basePath}/${id}/contactCount`)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Configures the auto-pause behavior for campaigns. */
|
|
72
|
+
setAutoPauseMode(data: AutoPauseModePayload): Promise<unknown> {
|
|
73
|
+
return this.client.put(`${this.basePath}/autoPauseMode`, data)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Exports campaign send results as a CSV file. */
|
|
77
|
+
exportCampaignResult(data: ExportCampaignResultPayload): Promise<unknown> {
|
|
78
|
+
return this.client.post(`${this.basePath}/export/csv`, data)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Exports a CSV template for importing contacts into an HSM campaign. */
|
|
82
|
+
exportTemplateCsv(data: ExportTemplateCsvPayload): Promise<unknown> {
|
|
83
|
+
return this.client.post(`${this.basePath}/exportTemplate`, data)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Returns the HSM message usage and limit for an account. */
|
|
87
|
+
getHsmLimit(accountId: string): Promise<HsmLimit> {
|
|
88
|
+
return this.client.get<HsmLimit>(`/whatsapp-business-templates/${accountId}/hsmLimit`)
|
|
12
89
|
}
|
|
13
90
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { IncludeItem, ListQuery, WhereClause } from '../../../core'
|
|
2
|
+
import type { Campaign, CampaignStatus } from '../types'
|
|
3
|
+
|
|
4
|
+
export type GetManyPaginatedFilters = {
|
|
5
|
+
title?: string
|
|
6
|
+
status?: CampaignStatus
|
|
7
|
+
serviceId?: string
|
|
8
|
+
createdAtFrom?: string
|
|
9
|
+
createdAtTo?: string
|
|
10
|
+
startedAtFrom?: string
|
|
11
|
+
startedAtTo?: string
|
|
12
|
+
quality?: string
|
|
13
|
+
page?: number
|
|
14
|
+
perPage?: number
|
|
15
|
+
sort?: string
|
|
16
|
+
order?: 'ASC' | 'DESC'
|
|
17
|
+
paginate?: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function getManyViewScope(
|
|
21
|
+
filters: GetManyPaginatedFilters = {},
|
|
22
|
+
): ListQuery<Campaign> & { paginate: true } {
|
|
23
|
+
const where: WhereClause<Campaign> = {}
|
|
24
|
+
const $and: WhereClause<Campaign>[] = []
|
|
25
|
+
|
|
26
|
+
if (filters.title) {
|
|
27
|
+
where.title = { $iLike: `%${filters.title}%` }
|
|
28
|
+
}
|
|
29
|
+
if (filters.status) {
|
|
30
|
+
where.status = filters.status
|
|
31
|
+
}
|
|
32
|
+
if (filters.serviceId) {
|
|
33
|
+
where.serviceId = filters.serviceId
|
|
34
|
+
}
|
|
35
|
+
if (filters.createdAtFrom) {
|
|
36
|
+
$and.push({ createdAt: { $gte: filters.createdAtFrom } })
|
|
37
|
+
}
|
|
38
|
+
if (filters.createdAtTo) {
|
|
39
|
+
$and.push({ createdAt: { $lte: filters.createdAtTo } })
|
|
40
|
+
}
|
|
41
|
+
if (filters.startedAtFrom) {
|
|
42
|
+
$and.push({ startedAt: { $gte: filters.startedAtFrom } })
|
|
43
|
+
}
|
|
44
|
+
if (filters.startedAtTo) {
|
|
45
|
+
$and.push({ startedAt: { $lte: filters.startedAtTo } })
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if ($and.length > 0) {
|
|
49
|
+
where.$and = $and
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const include: IncludeItem<Campaign>[] = [
|
|
53
|
+
'service',
|
|
54
|
+
'tags',
|
|
55
|
+
{
|
|
56
|
+
model: 'messages',
|
|
57
|
+
...(filters.quality && { required: true }),
|
|
58
|
+
include: [
|
|
59
|
+
'file',
|
|
60
|
+
{
|
|
61
|
+
model: 'hsm',
|
|
62
|
+
...(filters.quality && { where: { quality: filters.quality }, required: true }),
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{ model: 'createdBy', attributes: ['id', 'name'] },
|
|
67
|
+
{ model: 'sentBy', attributes: ['id', 'name'] },
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
where,
|
|
72
|
+
order: [[(filters.sort ?? 'createdAt') as keyof Campaign & string, filters.order ?? 'DESC']],
|
|
73
|
+
page: filters.page ?? 1,
|
|
74
|
+
perPage: filters.perPage ?? 15,
|
|
75
|
+
paginate: true as const,
|
|
76
|
+
...(filters.quality && { subQuery: false }),
|
|
77
|
+
include,
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { GetByIdQuery } from '../../../core'
|
|
2
|
+
import type { Campaign } from '../types'
|
|
3
|
+
|
|
4
|
+
/** Query scope that includes all associations for a detailed campaign view. */
|
|
5
|
+
export function getOneViewScope(): GetByIdQuery<Campaign> {
|
|
6
|
+
return {
|
|
7
|
+
include: [
|
|
8
|
+
'service',
|
|
9
|
+
'tags',
|
|
10
|
+
{
|
|
11
|
+
model: 'messages',
|
|
12
|
+
include: ['file', 'hsm', 'hsmFile'],
|
|
13
|
+
},
|
|
14
|
+
'importFile',
|
|
15
|
+
'defaultDepartment',
|
|
16
|
+
'defaultUser',
|
|
17
|
+
'createdBy',
|
|
18
|
+
'sentBy',
|
|
19
|
+
],
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { Department } from '../departments
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
1
|
+
import type { Department } from '../departments'
|
|
2
|
+
import type { File } from '../files'
|
|
3
|
+
import type { Message } from '../messages'
|
|
4
|
+
import type { Service } from '../services'
|
|
5
|
+
import type { Tag } from '../tags'
|
|
6
|
+
import type { User } from '../users'
|
|
5
7
|
|
|
6
8
|
export type CampaignStatus =
|
|
7
9
|
| 'ready'
|
|
@@ -47,6 +49,9 @@ export type Campaign = {
|
|
|
47
49
|
totalContacts: number | null
|
|
48
50
|
totalContactsImported: number | null
|
|
49
51
|
totalValidContacts: number | null
|
|
52
|
+
sentContacts: number | null
|
|
53
|
+
viewedContacts: number | null
|
|
54
|
+
contactCount: number | null
|
|
50
55
|
mustOpenTicket: boolean
|
|
51
56
|
marketingIntegration: boolean
|
|
52
57
|
accountId: string
|
|
@@ -65,6 +70,8 @@ export type Campaign = {
|
|
|
65
70
|
createdBy?: User | null
|
|
66
71
|
sentBy?: User | null
|
|
67
72
|
tags?: Tag[]
|
|
73
|
+
messages?: Message[]
|
|
74
|
+
importFile?: File | null
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
export type CampaignRelationships =
|
|
@@ -74,24 +81,74 @@ export type CampaignRelationships =
|
|
|
74
81
|
| 'createdBy'
|
|
75
82
|
| 'sentBy'
|
|
76
83
|
| 'tags'
|
|
84
|
+
| 'messages'
|
|
85
|
+
| 'importFile'
|
|
77
86
|
|
|
78
87
|
export type CreateCampaignPayload = {
|
|
79
88
|
title: string
|
|
80
89
|
serviceId: string
|
|
81
|
-
config:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
sendsAt?: string
|
|
90
|
+
config?: { minInterval: number | string; maxInterval: number | string }
|
|
91
|
+
tagIds?: string[]
|
|
92
|
+
messages?: { text?: string; fileId?: string }[]
|
|
85
93
|
isScheduled?: boolean
|
|
94
|
+
sendsAt?: string | null
|
|
86
95
|
mustOpenTicket?: boolean
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export type UpdateCampaignPayload = {
|
|
90
|
-
title?: string
|
|
91
|
-
config?: CampaignConfig
|
|
92
96
|
defaultDepartmentId?: string | null
|
|
93
97
|
defaultUserId?: string | null
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
hsm?: unknown
|
|
99
|
+
parameters?: unknown
|
|
100
|
+
fileTemplate?: unknown
|
|
101
|
+
contacts?: unknown[]
|
|
102
|
+
useTags?: boolean
|
|
103
|
+
marketingIntegration?: boolean
|
|
104
|
+
fileId?: string
|
|
105
|
+
nameField?: string
|
|
106
|
+
numberField?: string
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export type UpdateCampaignPayload = Partial<CreateCampaignPayload>
|
|
110
|
+
|
|
111
|
+
export type CampaignStatsInfo = {
|
|
112
|
+
totalValidContacts: number
|
|
113
|
+
totalContacts: number
|
|
114
|
+
totalContactsImported: number
|
|
115
|
+
firedSuccessCount: number
|
|
116
|
+
firedFailedCount: number
|
|
117
|
+
totalMessagesCount: number
|
|
118
|
+
totalFiredCount: number
|
|
119
|
+
firedBlockedByMessageRuleCount: number
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export type CampaignStatsMessages = {
|
|
123
|
+
error: number
|
|
124
|
+
received: number
|
|
125
|
+
viewed: number
|
|
126
|
+
answered: number
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export type CampaignStats = {
|
|
130
|
+
campaignInfo: CampaignStatsInfo
|
|
131
|
+
messageInfo: CampaignStatsMessages
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export type SetIntervalPayload = {
|
|
135
|
+
minInterval: string
|
|
136
|
+
maxInterval: string
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export type ExportCampaignResultPayload = {
|
|
140
|
+
campaignId: string
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export type ExportTemplateCsvPayload = {
|
|
144
|
+
hsmId: string
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export type AutoPauseModePayload = {
|
|
148
|
+
mode: string
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export type HsmLimit = {
|
|
152
|
+
hsmLimit: number
|
|
153
|
+
hsmUsedLimit: number
|
|
97
154
|
}
|
package/src/apis/files/types.ts
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export * from './absence'
|
|
2
|
+
export * from './acceptanceTerms'
|
|
3
|
+
export * from './accounts'
|
|
4
|
+
export * from './activityLog'
|
|
5
|
+
export * from './answers'
|
|
6
|
+
export * from './authHistory'
|
|
7
|
+
export * from './botVersions'
|
|
8
|
+
export * from './bots'
|
|
9
|
+
export * from './campaigns'
|
|
10
|
+
export * from './cards'
|
|
11
|
+
export * from './categories'
|
|
12
|
+
export * from './clientFeedback'
|
|
13
|
+
export * from './contactBlockLists'
|
|
14
|
+
export * from './contactBlockListsControls'
|
|
15
|
+
export * from './contacts'
|
|
16
|
+
export * from './creditMovements'
|
|
17
|
+
export * from './customFields'
|
|
18
|
+
export * from './departments'
|
|
19
|
+
export * from './distribution'
|
|
20
|
+
export * from './files'
|
|
21
|
+
export * from './holiday'
|
|
22
|
+
export * from './integrations'
|
|
23
|
+
export * from './interactiveMessages'
|
|
24
|
+
export * from './kanbanBoards'
|
|
25
|
+
export * from './kanbanCards'
|
|
26
|
+
export * from './kanbanColumns'
|
|
27
|
+
export * from './knowledgeBase'
|
|
28
|
+
export * from './knowledgeBaseItem'
|
|
29
|
+
export * from './me'
|
|
30
|
+
export * from './messages'
|
|
31
|
+
export * from './notifications'
|
|
32
|
+
export * from './organizations'
|
|
33
|
+
export * from './people'
|
|
34
|
+
export * from './permissions'
|
|
35
|
+
export * from './personalAccessTokens'
|
|
36
|
+
export * from './pipeline'
|
|
37
|
+
export * from './planAiHistory'
|
|
38
|
+
export * from './questions'
|
|
39
|
+
export * from './quickReplies'
|
|
40
|
+
export * from './roles'
|
|
41
|
+
export * from './schedule'
|
|
42
|
+
export * from './serviceAccessManagement'
|
|
43
|
+
export * from './serviceEvents'
|
|
44
|
+
export * from './services'
|
|
45
|
+
export * from './stickerUsers'
|
|
46
|
+
export * from './stickers'
|
|
47
|
+
export * from './tags'
|
|
48
|
+
export * from './terms'
|
|
49
|
+
export * from './ticketTopics'
|
|
50
|
+
export * from './tickets'
|
|
51
|
+
export * from './timetable'
|
|
52
|
+
export * from './transcripts'
|
|
53
|
+
export * from './users'
|
|
54
|
+
export * from './webhooks'
|
|
55
|
+
export * from './whatsappBusinessTemplates'
|
|
@@ -3,6 +3,7 @@ import type { Department } from '../departments/types'
|
|
|
3
3
|
import type { File } from '../files/types'
|
|
4
4
|
import type { Ticket } from '../tickets/types'
|
|
5
5
|
import type { User } from '../users/types'
|
|
6
|
+
import type { WhatsappBusinessTemplate } from '../whatsappBusinessTemplates/types'
|
|
6
7
|
|
|
7
8
|
export type MessageType =
|
|
8
9
|
| 'chat'
|
|
@@ -127,7 +128,7 @@ export type Message = {
|
|
|
127
128
|
quotedMessage?: Message | null
|
|
128
129
|
ticketUser?: User | null
|
|
129
130
|
ticketDepartment?: Department | null
|
|
130
|
-
hsm?:
|
|
131
|
+
hsm?: WhatsappBusinessTemplate | null
|
|
131
132
|
hsmFile?: File | null
|
|
132
133
|
reactions?: Message[]
|
|
133
134
|
reactionParentMessage?: Message | null
|
|
@@ -147,7 +147,7 @@ describe('BaseCrudApi', () => {
|
|
|
147
147
|
vi.mocked(client.get).mockResolvedValue({ id: '1', name: 'x' })
|
|
148
148
|
const headers = { 'X-Tenant': '123' }
|
|
149
149
|
|
|
150
|
-
await api.getById('1', headers)
|
|
150
|
+
await api.getById('1', undefined, headers)
|
|
151
151
|
expect(client.get).toHaveBeenCalledWith('/items/1', headers)
|
|
152
152
|
})
|
|
153
153
|
})
|
package/src/core/BaseCrudApi.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import qs from 'qs'
|
|
2
2
|
import type { ApiClient } from './ApiClient'
|
|
3
|
-
import type { CrudApi, ListQuery, Paginated } from './types'
|
|
3
|
+
import type { CrudApi, GetByIdQuery, ListQuery, Paginated } from './types'
|
|
4
4
|
export type {
|
|
5
5
|
WhereClause,
|
|
6
6
|
IncludeItem,
|
|
7
7
|
ListQuery,
|
|
8
|
+
GetByIdQuery,
|
|
8
9
|
Paginated,
|
|
9
10
|
HasGetMany,
|
|
10
11
|
HasGetById,
|
|
@@ -26,6 +27,11 @@ export class BaseCrudApi<
|
|
|
26
27
|
constructor(client: ApiClient, basePath: string) {
|
|
27
28
|
this.client = client
|
|
28
29
|
this.basePath = basePath.replace(/\/$/, '')
|
|
30
|
+
this.getMany = this.getMany.bind(this)
|
|
31
|
+
this.getById = this.getById.bind(this)
|
|
32
|
+
this.create = this.create.bind(this)
|
|
33
|
+
this.updateById = this.updateById.bind(this)
|
|
34
|
+
this.deleteById = this.deleteById.bind(this)
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
getMany(
|
|
@@ -51,8 +57,13 @@ export class BaseCrudApi<
|
|
|
51
57
|
* Returns a single resource by ID.
|
|
52
58
|
* @permissions $resourceName.view
|
|
53
59
|
*/
|
|
54
|
-
getById(
|
|
55
|
-
|
|
60
|
+
getById(
|
|
61
|
+
id: string,
|
|
62
|
+
query?: GetByIdQuery<TResponse>,
|
|
63
|
+
headers?: Record<string, string>,
|
|
64
|
+
): Promise<TResponse> {
|
|
65
|
+
const queryString = query ? `?${qs.stringify(query)}` : ''
|
|
66
|
+
return this.client.get<TResponse>(`${this.basePath}/${id}${queryString}`, headers)
|
|
56
67
|
}
|
|
57
68
|
|
|
58
69
|
/**
|
package/src/core/index.ts
CHANGED
|
@@ -2,4 +2,4 @@ export type { ApiClient, HttpMethod } from './ApiClient'
|
|
|
2
2
|
export { BaseApiClient, ApiError } from './BaseApiClient'
|
|
3
3
|
export type { ValidationError } from './BaseApiClient'
|
|
4
4
|
export { BaseCrudApi } from './BaseCrudApi'
|
|
5
|
-
export type { WhereClause, IncludeItem, ListQuery, Paginated } from './types'
|
|
5
|
+
export type { WhereClause, IncludeItem, ListQuery, GetByIdQuery, Paginated } from './types'
|