@tammsyr/admin-api-client 1.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/Permissions.ts ADDED
@@ -0,0 +1,130 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // @ts-nocheck
4
+ /*
5
+ * ---------------------------------------------------------------
6
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
7
+ * ## ##
8
+ * ## AUTHOR: acacode ##
9
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
10
+ * ---------------------------------------------------------------
11
+ */
12
+
13
+ import {
14
+ CreateData,
15
+ CreatePermissionDto,
16
+ DeleteData,
17
+ DeleteError,
18
+ DeleteParams,
19
+ FindAllData,
20
+ FindAllParams,
21
+ FindByIdData,
22
+ FindByIdParams,
23
+ UpdateData,
24
+ UpdateParams,
25
+ UpdatePermissionDto,
26
+ } from "./data-contracts";
27
+ import { ContentType, HttpClient, RequestParams } from "./http-client";
28
+
29
+ export class Permissions<SecurityDataType = unknown> {
30
+ http: HttpClient<SecurityDataType>;
31
+
32
+ constructor(http: HttpClient<SecurityDataType>) {
33
+ this.http = http;
34
+ }
35
+
36
+ /**
37
+ * @description Get a paginated list of all available permissions
38
+ *
39
+ * @tags Admin Permissions
40
+ * @name FindAll
41
+ * @summary List all permissions
42
+ * @request GET:/permissions
43
+ * @secure
44
+ */
45
+ findAll = (query: FindAllParams, params: RequestParams = {}) =>
46
+ this.http.request<FindAllData, any>({
47
+ path: `/permissions`,
48
+ method: "GET",
49
+ query: query,
50
+ secure: true,
51
+ format: "json",
52
+ ...params,
53
+ });
54
+ /**
55
+ * @description Create a new permission
56
+ *
57
+ * @tags Admin Permissions
58
+ * @name Create
59
+ * @summary Create permission
60
+ * @request POST:/permissions
61
+ * @secure
62
+ */
63
+ create = (data: CreatePermissionDto, params: RequestParams = {}) =>
64
+ this.http.request<CreateData, void>({
65
+ path: `/permissions`,
66
+ method: "POST",
67
+ body: data,
68
+ secure: true,
69
+ type: ContentType.Json,
70
+ format: "json",
71
+ ...params,
72
+ });
73
+ /**
74
+ * @description Get a specific permission by its ID
75
+ *
76
+ * @tags Admin Permissions
77
+ * @name FindById
78
+ * @summary Get permission by ID
79
+ * @request GET:/permissions/{id}
80
+ * @secure
81
+ */
82
+ findById = ({ id, ...query }: FindByIdParams, params: RequestParams = {}) =>
83
+ this.http.request<FindByIdData, void>({
84
+ path: `/permissions/${id}`,
85
+ method: "GET",
86
+ secure: true,
87
+ format: "json",
88
+ ...params,
89
+ });
90
+ /**
91
+ * @description Update an existing permission
92
+ *
93
+ * @tags Admin Permissions
94
+ * @name Update
95
+ * @summary Update permission
96
+ * @request PATCH:/permissions/{id}
97
+ * @secure
98
+ */
99
+ update = (
100
+ { id, ...query }: UpdateParams,
101
+ data: UpdatePermissionDto,
102
+ params: RequestParams = {},
103
+ ) =>
104
+ this.http.request<UpdateData, void>({
105
+ path: `/permissions/${id}`,
106
+ method: "PATCH",
107
+ body: data,
108
+ secure: true,
109
+ type: ContentType.Json,
110
+ format: "json",
111
+ ...params,
112
+ });
113
+ /**
114
+ * @description Delete a permission (must not be assigned to any roles or users)
115
+ *
116
+ * @tags Admin Permissions
117
+ * @name Delete
118
+ * @summary Delete permission
119
+ * @request DELETE:/permissions/{id}
120
+ * @secure
121
+ */
122
+ delete = ({ id, ...query }: DeleteParams, params: RequestParams = {}) =>
123
+ this.http.request<DeleteData, DeleteError>({
124
+ path: `/permissions/${id}`,
125
+ method: "DELETE",
126
+ secure: true,
127
+ format: "json",
128
+ ...params,
129
+ });
130
+ }
package/README.md ADDED
@@ -0,0 +1,150 @@
1
+ # @tamm/admin-api-client
2
+
3
+ TypeScript client for TAMM Admin Service API - Auto-generated from OpenAPI specification.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @tamm/admin-api-client
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```typescript
14
+ import { AdminApiClient } from '@tamm/admin-api-client';
15
+
16
+ // Create client instance
17
+ const adminClient = new AdminApiClient({
18
+ baseURL: 'http://localhost:3006',
19
+ token: 'your-jwt-token', // Optional, can be set later
20
+ });
21
+
22
+ // Login
23
+ const loginResponse = await adminClient.auth.login({
24
+ email: 'admin@example.com',
25
+ password: 'password123',
26
+ });
27
+
28
+ // Store token
29
+ adminClient.setToken(loginResponse.data.accessToken);
30
+
31
+ // Use authenticated endpoints
32
+ const admins = await adminClient.admins.getAll();
33
+ const roles = await adminClient.roles.getAll();
34
+ const permissions = await adminClient.permissions.getAll();
35
+ ```
36
+
37
+ ## API Reference
38
+
39
+ ### Available APIs
40
+
41
+ - **`adminClient.auth`** - Authentication (login, logout)
42
+ - **`adminClient.admins`** - Admin user management
43
+ - **`adminClient.roles`** - Role management
44
+ - **`adminClient.permissions`** - Permission management
45
+ - **`adminClient.agents`** - Agent management
46
+ - **`adminClient.agentBranches`** - Agent branch management
47
+ - **`adminClient.agentSettlements`** - Agent settlement management
48
+ - **`adminClient.kyc`** - KYC management
49
+ - **`adminClient.notifications`** - Notification management
50
+ - **`adminClient.activityLogs`** - Activity log queries
51
+ - **`adminClient.seed`** - Database seeding (dev only)
52
+
53
+ ### Authentication
54
+
55
+ ```typescript
56
+ // Set token during initialization
57
+ const client = new AdminApiClient({
58
+ baseURL: 'http://localhost:3006',
59
+ token: 'your-token',
60
+ });
61
+
62
+ // Or set token later
63
+ client.setToken('new-token');
64
+
65
+ // Clear token
66
+ client.clearToken();
67
+ ```
68
+
69
+ ### Using Individual API Classes
70
+
71
+ ```typescript
72
+ import { Admins, HttpClient } from '@tamm/admin-api-client';
73
+
74
+ const httpClient = new HttpClient({
75
+ baseURL: 'http://localhost:3006',
76
+ securityWorker: async (authData) => {
77
+ const token = localStorage.getItem('admin_token');
78
+ if (token) {
79
+ return {
80
+ headers: {
81
+ Authorization: `Bearer ${token}`,
82
+ },
83
+ };
84
+ }
85
+ },
86
+ secure: true,
87
+ });
88
+
89
+ const adminsApi = new Admins(httpClient);
90
+ const allAdmins = await adminsApi.getAll();
91
+ ```
92
+
93
+ ## Types
94
+
95
+ All TypeScript types are exported:
96
+
97
+ ```typescript
98
+ import type {
99
+ LoginAdminDto,
100
+ AdminUserDto,
101
+ AdminRoleDto,
102
+ AdminPermissionDto,
103
+ // ... all other types
104
+ } from '@tamm/admin-api-client';
105
+ ```
106
+
107
+ ## Error Handling
108
+
109
+ ```typescript
110
+ try {
111
+ const response = await adminClient.admins.create(adminData);
112
+ console.log('Success:', response.data);
113
+ } catch (error) {
114
+ if (error.response) {
115
+ // Server responded with error status
116
+ console.error('API Error:', error.response.status, error.response.data);
117
+ } else {
118
+ // Network error
119
+ console.error('Network Error:', error.message);
120
+ }
121
+ }
122
+ ```
123
+
124
+ ## Configuration
125
+
126
+ ```typescript
127
+ const client = new AdminApiClient({
128
+ baseURL: 'http://localhost:3006', // Admin Service URL
129
+ timeout: 10000, // Request timeout (ms)
130
+ token: 'your-jwt-token', // Optional auth token
131
+ headers: {
132
+ // Custom headers
133
+ 'X-Custom-Header': 'value',
134
+ },
135
+ });
136
+ ```
137
+
138
+ ## Versioning
139
+
140
+ This package follows semantic versioning. Check the [changelog](./CHANGELOG.md) for version history.
141
+
142
+ ## Support
143
+
144
+ - **Issues**: Report problems with generated code
145
+ - **API Changes**: Contact backend team
146
+ - **Documentation**: See [workflow guide](../../docs/admin-typescript-client-workflow.md)
147
+
148
+ ## License
149
+
150
+ MIT
package/Roles.ts ADDED
@@ -0,0 +1,199 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // @ts-nocheck
4
+ /*
5
+ * ---------------------------------------------------------------
6
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
7
+ * ## ##
8
+ * ## AUTHOR: acacode ##
9
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
10
+ * ---------------------------------------------------------------
11
+ */
12
+
13
+ import {
14
+ AddPermissionsData,
15
+ AddPermissionsParams,
16
+ AssignPermissionsDto,
17
+ CreateResult,
18
+ CreateRoleDto,
19
+ DeleteFail,
20
+ DeleteParams2,
21
+ DeleteResult,
22
+ FindAllParams2,
23
+ FindAllResult,
24
+ FindByIdParams2,
25
+ FindByIdResult,
26
+ LookupData,
27
+ LookupParams,
28
+ SetPermissionsData,
29
+ SetPermissionsParams,
30
+ UpdateParams2,
31
+ UpdateResult,
32
+ UpdateRoleDto,
33
+ } from "./data-contracts";
34
+ import { ContentType, HttpClient, RequestParams } from "./http-client";
35
+
36
+ export class Roles<SecurityDataType = unknown> {
37
+ http: HttpClient<SecurityDataType>;
38
+
39
+ constructor(http: HttpClient<SecurityDataType>) {
40
+ this.http = http;
41
+ }
42
+
43
+ /**
44
+ * @description Get a paginated list of all roles without permissions - useful for dropdowns and lookups
45
+ *
46
+ * @tags Admin Roles
47
+ * @name Lookup
48
+ * @summary List all roles (lookup)
49
+ * @request GET:/roles/lookup
50
+ * @secure
51
+ */
52
+ lookup = (query: LookupParams, params: RequestParams = {}) =>
53
+ this.http.request<LookupData, any>({
54
+ path: `/roles/lookup`,
55
+ method: "GET",
56
+ query: query,
57
+ secure: true,
58
+ format: "json",
59
+ ...params,
60
+ });
61
+ /**
62
+ * @description Get a paginated list of all roles with their permissions
63
+ *
64
+ * @tags Admin Roles
65
+ * @name FindAll
66
+ * @summary List all roles
67
+ * @request GET:/roles
68
+ * @secure
69
+ */
70
+ findAll = (query: FindAllParams2, params: RequestParams = {}) =>
71
+ this.http.request<FindAllResult, any>({
72
+ path: `/roles`,
73
+ method: "GET",
74
+ query: query,
75
+ secure: true,
76
+ format: "json",
77
+ ...params,
78
+ });
79
+ /**
80
+ * @description Create a new role with optional permissions assignment
81
+ *
82
+ * @tags Admin Roles
83
+ * @name Create
84
+ * @summary Create role
85
+ * @request POST:/roles
86
+ * @secure
87
+ */
88
+ create = (data: CreateRoleDto, params: RequestParams = {}) =>
89
+ this.http.request<CreateResult, void>({
90
+ path: `/roles`,
91
+ method: "POST",
92
+ body: data,
93
+ secure: true,
94
+ type: ContentType.Json,
95
+ format: "json",
96
+ ...params,
97
+ });
98
+ /**
99
+ * @description Get a specific role with its permissions
100
+ *
101
+ * @tags Admin Roles
102
+ * @name FindById
103
+ * @summary Get role by ID
104
+ * @request GET:/roles/{id}
105
+ * @secure
106
+ */
107
+ findById = ({ id, ...query }: FindByIdParams2, params: RequestParams = {}) =>
108
+ this.http.request<FindByIdResult, void>({
109
+ path: `/roles/${id}`,
110
+ method: "GET",
111
+ secure: true,
112
+ format: "json",
113
+ ...params,
114
+ });
115
+ /**
116
+ * @description Update an existing role
117
+ *
118
+ * @tags Admin Roles
119
+ * @name Update
120
+ * @summary Update role
121
+ * @request PATCH:/roles/{id}
122
+ * @secure
123
+ */
124
+ update = (
125
+ { id, ...query }: UpdateParams2,
126
+ data: UpdateRoleDto,
127
+ params: RequestParams = {},
128
+ ) =>
129
+ this.http.request<UpdateResult, void>({
130
+ path: `/roles/${id}`,
131
+ method: "PATCH",
132
+ body: data,
133
+ secure: true,
134
+ type: ContentType.Json,
135
+ format: "json",
136
+ ...params,
137
+ });
138
+ /**
139
+ * @description Delete a role (must not have assigned users)
140
+ *
141
+ * @tags Admin Roles
142
+ * @name Delete
143
+ * @summary Delete role
144
+ * @request DELETE:/roles/{id}
145
+ * @secure
146
+ */
147
+ delete = ({ id, ...query }: DeleteParams2, params: RequestParams = {}) =>
148
+ this.http.request<DeleteResult, DeleteFail>({
149
+ path: `/roles/${id}`,
150
+ method: "DELETE",
151
+ secure: true,
152
+ format: "json",
153
+ ...params,
154
+ });
155
+ /**
156
+ * @description Replace all permissions for a role
157
+ *
158
+ * @tags Admin Roles
159
+ * @name SetPermissions
160
+ * @summary Set role permissions
161
+ * @request PUT:/roles/{id}/permissions
162
+ * @secure
163
+ */
164
+ setPermissions = (
165
+ { id, ...query }: SetPermissionsParams,
166
+ data: AssignPermissionsDto,
167
+ params: RequestParams = {},
168
+ ) =>
169
+ this.http.request<SetPermissionsData, void>({
170
+ path: `/roles/${id}/permissions`,
171
+ method: "PUT",
172
+ body: data,
173
+ secure: true,
174
+ type: ContentType.Json,
175
+ ...params,
176
+ });
177
+ /**
178
+ * @description Add permissions to a role (additive)
179
+ *
180
+ * @tags Admin Roles
181
+ * @name AddPermissions
182
+ * @summary Add permissions to role
183
+ * @request POST:/roles/{id}/permissions
184
+ * @secure
185
+ */
186
+ addPermissions = (
187
+ { id, ...query }: AddPermissionsParams,
188
+ data: AssignPermissionsDto,
189
+ params: RequestParams = {},
190
+ ) =>
191
+ this.http.request<AddPermissionsData, void>({
192
+ path: `/roles/${id}/permissions`,
193
+ method: "POST",
194
+ body: data,
195
+ secure: true,
196
+ type: ContentType.Json,
197
+ ...params,
198
+ });
199
+ }
package/Seed.ts ADDED
@@ -0,0 +1,48 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // @ts-nocheck
4
+ /*
5
+ * ---------------------------------------------------------------
6
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
7
+ * ## ##
8
+ * ## AUTHOR: acacode ##
9
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
10
+ * ---------------------------------------------------------------
11
+ */
12
+
13
+ import {
14
+ SeedPermissionsAndRolesData,
15
+ SeedPermissionsRolesRequestDto,
16
+ } from "./data-contracts";
17
+ import { ContentType, HttpClient, RequestParams } from "./http-client";
18
+
19
+ export class Seed<SecurityDataType = unknown> {
20
+ http: HttpClient<SecurityDataType>;
21
+
22
+ constructor(http: HttpClient<SecurityDataType>) {
23
+ this.http = http;
24
+ }
25
+
26
+ /**
27
+ * @description Seed all permissions and roles from enums. Optionally assign all permissions to super_admin role.
28
+ *
29
+ * @tags Admin Seed
30
+ * @name SeedPermissionsAndRoles
31
+ * @summary Seed permissions and roles
32
+ * @request POST:/seed/permissions-roles
33
+ * @secure
34
+ */
35
+ seedPermissionsAndRoles = (
36
+ data: SeedPermissionsRolesRequestDto,
37
+ params: RequestParams = {},
38
+ ) =>
39
+ this.http.request<SeedPermissionsAndRolesData, any>({
40
+ path: `/seed/permissions-roles`,
41
+ method: "POST",
42
+ body: data,
43
+ secure: true,
44
+ type: ContentType.Json,
45
+ format: "json",
46
+ ...params,
47
+ });
48
+ }