@ikatec/digisac-api-sdk 1.3.0 → 1.3.1
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/README.md +2 -2
- package/dist/apis/authHistory/AuthHistoryApi.cjs +1 -1
- package/dist/apis/authHistory/AuthHistoryApi.cjs.map +1 -1
- package/dist/apis/authHistory/AuthHistoryApi.d.ts +3 -3
- package/dist/apis/authHistory/AuthHistoryApi.d.ts.map +1 -1
- package/dist/apis/authHistory/AuthHistoryApi.mjs +1 -1
- package/dist/apis/authHistory/AuthHistoryApi.mjs.map +1 -1
- package/dist/apis/transcripts/TranscriptsApi.cjs +1 -1
- package/dist/apis/transcripts/TranscriptsApi.cjs.map +1 -1
- package/dist/apis/transcripts/TranscriptsApi.d.ts +3 -3
- package/dist/apis/transcripts/TranscriptsApi.d.ts.map +1 -1
- package/dist/apis/transcripts/TranscriptsApi.mjs +1 -1
- package/dist/apis/transcripts/TranscriptsApi.mjs.map +1 -1
- package/dist/core/BaseCrudApi.cjs +1 -1
- package/dist/core/BaseCrudApi.cjs.map +1 -1
- package/dist/core/BaseCrudApi.d.ts +2 -2
- package/dist/core/BaseCrudApi.d.ts.map +1 -1
- package/dist/core/BaseCrudApi.mjs +1 -1
- package/dist/core/BaseCrudApi.mjs.map +1 -1
- package/dist/core/types.d.ts +3 -4
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/apis/authHistory/AuthHistoryApi.ts +3 -3
- package/src/apis/transcripts/TranscriptsApi.ts +3 -3
- package/src/core/BaseCrudApi.test.ts +6 -6
- package/src/core/BaseCrudApi.ts +2 -2
- package/src/core/types.ts +3 -7
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ console.log(result.data) // Ticket[]
|
|
|
32
32
|
console.log(result.total) // number
|
|
33
33
|
|
|
34
34
|
// Get by ID
|
|
35
|
-
const ticket = await tickets.
|
|
35
|
+
const ticket = await tickets.getById('ticket-uuid')
|
|
36
36
|
|
|
37
37
|
// Create
|
|
38
38
|
const newTicket = await tickets.create({ /* CreateTicketPayload */ })
|
|
@@ -54,7 +54,7 @@ The SDK is structured in two layers:
|
|
|
54
54
|
|---|---|
|
|
55
55
|
| `ApiClient.ts` | Interface defining `setAccessToken` and HTTP methods (`get`, `post`, `put`, `patch`, `delete`, `request`) |
|
|
56
56
|
| `BaseApiClient.ts` | `fetch`-based implementation of `ApiClient`. Handles JSON serialization and error parsing into `ApiError`. Automatically injects `Authorization: Bearer` header when an access token is set |
|
|
57
|
-
| `BaseCrudApi.ts` | Generic class providing `getMany`, `
|
|
57
|
+
| `BaseCrudApi.ts` | Generic class providing `getMany`, `getById`, `create`, `updateById`, `deleteById` |
|
|
58
58
|
| `types.ts` | Shared types: `WhereClause<T>`, `ListQuery<T>`, `Paginated<T>`, `IncludeItem<T>` |
|
|
59
59
|
|
|
60
60
|
### API Resources (`src/apis/<resource>/`)
|
|
@@ -17,7 +17,7 @@ var AuthHistoryApi = class {
|
|
|
17
17
|
* Returns a single authentication event by its ID. Non-admin users can only access their own records.
|
|
18
18
|
* @permissions authHistory.view
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
getById(id, headers) {
|
|
21
21
|
return this.client.get(`/auth-history/${id}`, headers);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthHistoryApi.cjs","names":[],"sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from '../../core/ApiClient'\nimport type { ListQuery, Paginated, HasGetMany,
|
|
1
|
+
{"version":3,"file":"AuthHistoryApi.cjs","names":[],"sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from '../../core/ApiClient'\nimport type { ListQuery, Paginated, HasGetMany, HasGetById } from '../../core/types'\nimport type { AuthHistory } from './types'\n\nexport class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetById<AuthHistory> {\n private readonly client: ApiClient\n\n constructor(client: ApiClient) {\n this.client = client\n }\n\n /**\n * Returns a paginated list of authentication events (auth, password_change, logout). Non-admin users can only see their own records.\n * @permissions authHistory.view\n */\n getMany(\n query: ListQuery<AuthHistory> & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<AuthHistory[]>\n getMany(\n query?: ListQuery<AuthHistory> & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<AuthHistory>>\n getMany(\n query?: ListQuery<AuthHistory>,\n headers?: Record<string, string>,\n ): Promise<Paginated<AuthHistory> | AuthHistory[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<AuthHistory> | AuthHistory[]>(\n `/auth-history${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single authentication event by its ID. Non-admin users can only access their own records.\n * @permissions authHistory.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<AuthHistory> {\n return this.client.get<AuthHistory>(`/auth-history/${id}`, headers)\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,iBAAb,MAAwF;CACtF,AAAiB;CAEjB,YAAY,QAAmB;AAC7B,OAAK,SAAS;;CAehB,QACE,OACA,SACiD;EACjD,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,gBAAgB,eAChB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAwD;AAC1E,SAAO,KAAK,OAAO,IAAiB,iBAAiB,MAAM,QAAQ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient';
|
|
2
|
-
import type { ListQuery, Paginated, HasGetMany,
|
|
2
|
+
import type { ListQuery, Paginated, HasGetMany, HasGetById } from '../../core/types';
|
|
3
3
|
import type { AuthHistory } from './types';
|
|
4
|
-
export declare class AuthHistoryApi implements HasGetMany<AuthHistory>,
|
|
4
|
+
export declare class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetById<AuthHistory> {
|
|
5
5
|
private readonly client;
|
|
6
6
|
constructor(client: ApiClient);
|
|
7
7
|
/**
|
|
@@ -18,6 +18,6 @@ export declare class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetOn
|
|
|
18
18
|
* Returns a single authentication event by its ID. Non-admin users can only access their own records.
|
|
19
19
|
* @permissions authHistory.view
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
getById(id: string, headers?: Record<string, string>): Promise<AuthHistory>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=AuthHistoryApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthHistoryApi.d.ts","sourceRoot":"","sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"AuthHistoryApi.d.ts","sourceRoot":"","sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,qBAAa,cAAe,YAAW,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IACrF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,MAAM,EAAE,SAAS;IAI7B;;;OAGG;IACH,OAAO,CACL,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,EACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CACL,KAAK,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,EACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAYlC;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAG5E"}
|
|
@@ -14,7 +14,7 @@ var AuthHistoryApi = class {
|
|
|
14
14
|
* Returns a single authentication event by its ID. Non-admin users can only access their own records.
|
|
15
15
|
* @permissions authHistory.view
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
getById(id, headers) {
|
|
18
18
|
return this.client.get(`/auth-history/${id}`, headers);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthHistoryApi.mjs","names":[],"sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from '../../core/ApiClient'\nimport type { ListQuery, Paginated, HasGetMany,
|
|
1
|
+
{"version":3,"file":"AuthHistoryApi.mjs","names":[],"sources":["../../../src/apis/authHistory/AuthHistoryApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from '../../core/ApiClient'\nimport type { ListQuery, Paginated, HasGetMany, HasGetById } from '../../core/types'\nimport type { AuthHistory } from './types'\n\nexport class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetById<AuthHistory> {\n private readonly client: ApiClient\n\n constructor(client: ApiClient) {\n this.client = client\n }\n\n /**\n * Returns a paginated list of authentication events (auth, password_change, logout). Non-admin users can only see their own records.\n * @permissions authHistory.view\n */\n getMany(\n query: ListQuery<AuthHistory> & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<AuthHistory[]>\n getMany(\n query?: ListQuery<AuthHistory> & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<AuthHistory>>\n getMany(\n query?: ListQuery<AuthHistory>,\n headers?: Record<string, string>,\n ): Promise<Paginated<AuthHistory> | AuthHistory[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<AuthHistory> | AuthHistory[]>(\n `/auth-history${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns a single authentication event by its ID. Non-admin users can only access their own records.\n * @permissions authHistory.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<AuthHistory> {\n return this.client.get<AuthHistory>(`/auth-history/${id}`, headers)\n }\n}\n"],"mappings":";;;AAKA,IAAa,iBAAb,MAAwF;CACtF,AAAiB;CAEjB,YAAY,QAAmB;AAC7B,OAAK,SAAS;;CAehB,QACE,OACA,SACiD;EACjD,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,gBAAgB,eAChB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAwD;AAC1E,SAAO,KAAK,OAAO,IAAiB,iBAAiB,MAAM,QAAQ"}
|
|
@@ -8,7 +8,7 @@ var TranscriptsApi = class {
|
|
|
8
8
|
this.client = client;
|
|
9
9
|
}
|
|
10
10
|
/** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */
|
|
11
|
-
|
|
11
|
+
getById(id, headers) {
|
|
12
12
|
return this.client.get(`${this.basePath}/${id}`, headers);
|
|
13
13
|
}
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranscriptsApi.cjs","names":[],"sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport type {
|
|
1
|
+
{"version":3,"file":"TranscriptsApi.cjs","names":[],"sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport type { HasGetById } from '../../core/types'\nimport type { TranscriptResponse } from './types'\n\nexport class TranscriptsApi implements HasGetById<TranscriptResponse> {\n private readonly client: ApiClient\n private readonly basePath = '/transcripts'\n\n constructor(client: ApiClient) {\n this.client = client\n }\n\n /** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */\n getById(id: string, headers?: Record<string, string>): Promise<TranscriptResponse> {\n return this.client.get<TranscriptResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";;;AAIA,IAAa,iBAAb,MAAsE;CACpE,AAAiB;CACjB,AAAiB,WAAW;CAE5B,YAAY,QAAmB;AAC7B,OAAK,SAAS;;;CAIhB,QAAQ,IAAY,SAA+D;AACjF,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient';
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasGetById } from '../../core/types';
|
|
3
3
|
import type { TranscriptResponse } from './types';
|
|
4
|
-
export declare class TranscriptsApi implements
|
|
4
|
+
export declare class TranscriptsApi implements HasGetById<TranscriptResponse> {
|
|
5
5
|
private readonly client;
|
|
6
6
|
private readonly basePath;
|
|
7
7
|
constructor(client: ApiClient);
|
|
8
8
|
/** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */
|
|
9
|
-
|
|
9
|
+
getById(id: string, headers?: Record<string, string>): Promise<TranscriptResponse>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=TranscriptsApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranscriptsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TranscriptsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,qBAAa,cAAe,YAAW,UAAU,CAAC,kBAAkB,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,MAAM,EAAE,SAAS;IAI7B,4GAA4G;IAC5G,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGnF"}
|
|
@@ -6,7 +6,7 @@ var TranscriptsApi = class {
|
|
|
6
6
|
this.client = client;
|
|
7
7
|
}
|
|
8
8
|
/** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */
|
|
9
|
-
|
|
9
|
+
getById(id, headers) {
|
|
10
10
|
return this.client.get(`${this.basePath}/${id}`, headers);
|
|
11
11
|
}
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranscriptsApi.mjs","names":[],"sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport type {
|
|
1
|
+
{"version":3,"file":"TranscriptsApi.mjs","names":[],"sources":["../../../src/apis/transcripts/TranscriptsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport type { HasGetById } from '../../core/types'\nimport type { TranscriptResponse } from './types'\n\nexport class TranscriptsApi implements HasGetById<TranscriptResponse> {\n private readonly client: ApiClient\n private readonly basePath = '/transcripts'\n\n constructor(client: ApiClient) {\n this.client = client\n }\n\n /** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */\n getById(id: string, headers?: Record<string, string>): Promise<TranscriptResponse> {\n return this.client.get<TranscriptResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";AAIA,IAAa,iBAAb,MAAsE;CACpE,AAAiB;CACjB,AAAiB,WAAW;CAE5B,YAAY,QAAmB;AAC7B,OAAK,SAAS;;;CAIhB,QAAQ,IAAY,SAA+D;AACjF,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
|
|
@@ -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
|
|
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, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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.patch<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":";;;;;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,MAA0B,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOvF,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
2
|
import type { CrudApi, ListQuery, Paginated } from './types';
|
|
3
|
-
export type { WhereClause, IncludeItem, ListQuery, Paginated, HasGetMany,
|
|
3
|
+
export type { WhereClause, IncludeItem, ListQuery, 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
|
-
|
|
18
|
+
getById(id: string, 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;AAC5D,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,
|
|
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;AAC5D,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,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;IAK/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,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzE;;;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"}
|
|
@@ -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
|
|
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, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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.patch<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":";;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,MAA0B,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOvF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -90,10 +90,9 @@ export interface HasGetMany<TResponse, TQuery extends ListQuery<TResponse> = Lis
|
|
|
90
90
|
getMany(query?: TQuery & {
|
|
91
91
|
paginate?: true;
|
|
92
92
|
}, headers?: Record<string, string>): Promise<Paginated<TResponse>>;
|
|
93
|
-
getMany(query?: TQuery, headers?: Record<string, string>): Promise<Paginated<TResponse> | TResponse[]>;
|
|
94
93
|
}
|
|
95
|
-
export interface
|
|
96
|
-
|
|
94
|
+
export interface HasGetById<TResponse> {
|
|
95
|
+
getById(id: string, headers?: Record<string, string>): Promise<TResponse>;
|
|
97
96
|
}
|
|
98
97
|
export interface HasCreate<TResponse, TCreate> {
|
|
99
98
|
create(body: TCreate, headers?: Record<string, string>): Promise<TResponse>;
|
|
@@ -104,6 +103,6 @@ export interface HasUpdateById<TResponse, TUpdate> {
|
|
|
104
103
|
export interface HasDeleteById<TResponse> {
|
|
105
104
|
deleteById(id: string, headers?: Record<string, string>): Promise<TResponse>;
|
|
106
105
|
}
|
|
107
|
-
export type CrudApi<TResponse, TCreate, TUpdate = TCreate, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>> = HasGetMany<TResponse, TQuery> &
|
|
106
|
+
export type CrudApi<TResponse, TCreate, TUpdate = TCreate, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>> = HasGetMany<TResponse, TQuery> & HasGetById<TResponse> & HasCreate<TResponse, TCreate> & HasUpdateById<TResponse, TUpdate> & HasDeleteById<TResponse>;
|
|
108
107
|
export {};
|
|
109
108
|
//# sourceMappingURL=types.d.ts.map
|
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":"AAEA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAIxD,KAAK,mBAAmB,CAAC,CAAC,GAAG,SAAS,IAAI;IACxC,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,CAAC,CAAA;CACT,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,KAAK,cAAc,CAAC,CAAC,GAAG,SAAS,IAAI;IACnC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;IACT,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,CAAC,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;IACd,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;CACX,CAAA;AAED,KAAK,cAAc,CAAC,CAAC,GAAG,SAAS,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;AAEjG,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;AAE1C,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,CAAA;AAED,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAIjE,wEAAwE;AACxE,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAE3D,sFAAsF;AACtF,KAAK,eAAe,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,IAAI,GACnD,KAAK,GACL,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACzB,CAAC,GAAG,MAAM,GACV,KAAK;CACZ,CAAC,MAAM,CAAC,CAAC,CAAA;AAIV,0GAA0G;AAC1G,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;QACzB,KAAK,EAAE,CAAC,CAAA;QACR,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAClC;CACF,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAErB,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAIjG,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAGD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAID,MAAM,WAAW,UAAU,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;IAC/F,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,CAAA;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,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import qs from 'qs'
|
|
2
2
|
import type { ApiClient } from '../../core/ApiClient'
|
|
3
|
-
import type { ListQuery, Paginated, HasGetMany,
|
|
3
|
+
import type { ListQuery, Paginated, HasGetMany, HasGetById } from '../../core/types'
|
|
4
4
|
import type { AuthHistory } from './types'
|
|
5
5
|
|
|
6
|
-
export class AuthHistoryApi implements HasGetMany<AuthHistory>,
|
|
6
|
+
export class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetById<AuthHistory> {
|
|
7
7
|
private readonly client: ApiClient
|
|
8
8
|
|
|
9
9
|
constructor(client: ApiClient) {
|
|
@@ -37,7 +37,7 @@ export class AuthHistoryApi implements HasGetMany<AuthHistory>, HasGetOne<AuthHi
|
|
|
37
37
|
* Returns a single authentication event by its ID. Non-admin users can only access their own records.
|
|
38
38
|
* @permissions authHistory.view
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
getById(id: string, headers?: Record<string, string>): Promise<AuthHistory> {
|
|
41
41
|
return this.client.get<AuthHistory>(`/auth-history/${id}`, headers)
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient'
|
|
2
|
-
import type {
|
|
2
|
+
import type { HasGetById } from '../../core/types'
|
|
3
3
|
import type { TranscriptResponse } from './types'
|
|
4
4
|
|
|
5
|
-
export class TranscriptsApi implements
|
|
5
|
+
export class TranscriptsApi implements HasGetById<TranscriptResponse> {
|
|
6
6
|
private readonly client: ApiClient
|
|
7
7
|
private readonly basePath = '/transcripts'
|
|
8
8
|
|
|
@@ -11,7 +11,7 @@ export class TranscriptsApi implements HasGetOne<TranscriptResponse> {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/** Triggers audio transcription for a message by dispatching an async job, and marks it as transcribing. */
|
|
14
|
-
|
|
14
|
+
getById(id: string, headers?: Record<string, string>): Promise<TranscriptResponse> {
|
|
15
15
|
return this.client.get<TranscriptResponse>(`${this.basePath}/${id}`, headers)
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -131,14 +131,14 @@ describe('BaseCrudApi', () => {
|
|
|
131
131
|
})
|
|
132
132
|
})
|
|
133
133
|
|
|
134
|
-
// ──
|
|
134
|
+
// ── getById ──────────────────────────────────────────────────────
|
|
135
135
|
|
|
136
|
-
describe('
|
|
136
|
+
describe('getById', () => {
|
|
137
137
|
it('calls client.get with basePath/id', async () => {
|
|
138
138
|
const item: Item = { id: 'abc', name: 'Test' }
|
|
139
139
|
vi.mocked(client.get).mockResolvedValue(item)
|
|
140
140
|
|
|
141
|
-
const result = await api.
|
|
141
|
+
const result = await api.getById('abc')
|
|
142
142
|
expect(client.get).toHaveBeenCalledWith('/items/abc', undefined)
|
|
143
143
|
expect(result).toEqual(item)
|
|
144
144
|
})
|
|
@@ -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.
|
|
150
|
+
await api.getById('1', headers)
|
|
151
151
|
expect(client.get).toHaveBeenCalledWith('/items/1', headers)
|
|
152
152
|
})
|
|
153
153
|
})
|
|
@@ -223,9 +223,9 @@ describe('BaseCrudApi', () => {
|
|
|
223
223
|
await expect(api.getMany()).rejects.toThrow('Network error')
|
|
224
224
|
})
|
|
225
225
|
|
|
226
|
-
it('propagates errors from client.get in
|
|
226
|
+
it('propagates errors from client.get in getById', async () => {
|
|
227
227
|
vi.mocked(client.get).mockRejectedValue(new Error('Not found'))
|
|
228
|
-
await expect(api.
|
|
228
|
+
await expect(api.getById('missing')).rejects.toThrow('Not found')
|
|
229
229
|
})
|
|
230
230
|
|
|
231
231
|
it('propagates errors from client.post in create', async () => {
|
package/src/core/BaseCrudApi.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type {
|
|
|
7
7
|
ListQuery,
|
|
8
8
|
Paginated,
|
|
9
9
|
HasGetMany,
|
|
10
|
-
|
|
10
|
+
HasGetById,
|
|
11
11
|
HasCreate,
|
|
12
12
|
HasUpdateById,
|
|
13
13
|
HasDeleteById,
|
|
@@ -51,7 +51,7 @@ export class BaseCrudApi<
|
|
|
51
51
|
* Returns a single resource by ID.
|
|
52
52
|
* @permissions $resourceName.view
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
getById(id: string, headers?: Record<string, string>): Promise<TResponse> {
|
|
55
55
|
return this.client.get<TResponse>(`${this.basePath}/${id}`, headers)
|
|
56
56
|
}
|
|
57
57
|
|
package/src/core/types.ts
CHANGED
|
@@ -124,14 +124,10 @@ export interface HasGetMany<TResponse, TQuery extends ListQuery<TResponse> = Lis
|
|
|
124
124
|
query?: TQuery & { paginate?: true },
|
|
125
125
|
headers?: Record<string, string>,
|
|
126
126
|
): Promise<Paginated<TResponse>>
|
|
127
|
-
getMany(
|
|
128
|
-
query?: TQuery,
|
|
129
|
-
headers?: Record<string, string>,
|
|
130
|
-
): Promise<Paginated<TResponse> | TResponse[]>
|
|
131
127
|
}
|
|
132
128
|
|
|
133
|
-
export interface
|
|
134
|
-
|
|
129
|
+
export interface HasGetById<TResponse> {
|
|
130
|
+
getById(id: string, headers?: Record<string, string>): Promise<TResponse>
|
|
135
131
|
}
|
|
136
132
|
|
|
137
133
|
export interface HasCreate<TResponse, TCreate> {
|
|
@@ -152,7 +148,7 @@ export type CrudApi<
|
|
|
152
148
|
TUpdate = TCreate,
|
|
153
149
|
TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,
|
|
154
150
|
> = HasGetMany<TResponse, TQuery> &
|
|
155
|
-
|
|
151
|
+
HasGetById<TResponse> &
|
|
156
152
|
HasCreate<TResponse, TCreate> &
|
|
157
153
|
HasUpdateById<TResponse, TUpdate> &
|
|
158
154
|
HasDeleteById<TResponse>
|