storemw-core-client 1.0.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/.env +1 -0
- package/.vscode/launch.json +24 -0
- package/dist/config/config.d.ts +6 -0
- package/dist/config/config.js +13 -0
- package/dist/config/env.d.ts +7 -0
- package/dist/config/env.js +16 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +32 -0
- package/dist/lib/ApiService.d.ts +41 -0
- package/dist/lib/ApiService.js +143 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +9 -0
- package/dist/lib/queryParams.d.ts +43 -0
- package/dist/lib/queryParams.js +99 -0
- package/dist/services/account/AccountService.d.ts +52 -0
- package/dist/services/account/AccountService.js +119 -0
- package/dist/services/auth/AuthService.d.ts +44 -0
- package/dist/services/auth/AuthService.js +76 -0
- package/dist/services/branch/BranchService.d.ts +124 -0
- package/dist/services/branch/BranchService.js +162 -0
- package/dist/services/business/BusinessService.d.ts +91 -0
- package/dist/services/business/BusinessService.js +153 -0
- package/dist/services/document/DocumentService.d.ts +578 -0
- package/dist/services/document/DocumentService.js +615 -0
- package/dist/services/index.d.ts +36 -0
- package/dist/services/index.js +97 -0
- package/dist/services/injection_field/InjectionFieldService.d.ts +113 -0
- package/dist/services/injection_field/InjectionFieldService.js +220 -0
- package/dist/services/inventory/InventoryService.d.ts +27 -0
- package/dist/services/inventory/InventoryService.js +231 -0
- package/dist/services/item/ItemService.d.ts +227 -0
- package/dist/services/item/ItemService.js +411 -0
- package/dist/services/location/LocationService.d.ts +154 -0
- package/dist/services/location/LocationService.js +256 -0
- package/dist/services/logistic/LogisticService.d.ts +104 -0
- package/dist/services/logistic/LogisticService.js +150 -0
- package/dist/services/permission/PermissionService.d.ts +296 -0
- package/dist/services/permission/PermissionService.js +576 -0
- package/dist/services/permission/config/custom/adminPermission.d.ts +4 -0
- package/dist/services/permission/config/custom/adminPermission.js +18 -0
- package/dist/services/permission/config/custom/config.d.ts +40 -0
- package/dist/services/permission/config/custom/config.js +23 -0
- package/dist/services/permission/config/default/adminPermission.d.ts +2 -0
- package/dist/services/permission/config/default/adminPermission.js +129 -0
- package/dist/services/permission/config/default/agentPermission.d.ts +2 -0
- package/dist/services/permission/config/default/agentPermission.js +43 -0
- package/dist/services/permission/config/default/customerPermission.d.ts +2 -0
- package/dist/services/permission/config/default/customerPermission.js +10 -0
- package/dist/services/permission/config/default/driverPermission.d.ts +2 -0
- package/dist/services/permission/config/default/driverPermission.js +4 -0
- package/dist/services/permission/config/default/workerPermission.d.ts +2 -0
- package/dist/services/permission/config/default/workerPermission.js +25 -0
- package/dist/services/rate/RateService.d.ts +201 -0
- package/dist/services/rate/RateService.js +303 -0
- package/dist/services/region/RegionService.d.ts +111 -0
- package/dist/services/region/RegionService.js +193 -0
- package/dist/services/repository/RepositoryService.d.ts +153 -0
- package/dist/services/repository/RepositoryService.js +243 -0
- package/dist/services/transaction/TransactionService.d.ts +153 -0
- package/dist/services/transaction/TransactionService.js +173 -0
- package/dist/services/user/BranchUserService.d.ts +129 -0
- package/dist/services/user/BranchUserService.js +193 -0
- package/dist/services/user/UserRoleService.d.ts +105 -0
- package/dist/services/user/UserRoleService.js +193 -0
- package/dist/services/user/UserService.d.ts +269 -0
- package/dist/services/user/UserService.js +477 -0
- package/dist/services/wallet/WalletService.d.ts +104 -0
- package/dist/services/wallet/WalletService.js +163 -0
- package/dist/utils/dateUtils.d.ts +6 -0
- package/dist/utils/dateUtils.js +28 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +13 -0
- package/package.json +27 -0
- package/src/config/config.ts +15 -0
- package/src/config/env.ts +18 -0
- package/src/config/index.ts +2 -0
- package/src/index.ts +41 -0
- package/src/lib/ApiService.ts +170 -0
- package/src/lib/index.ts +5 -0
- package/src/lib/queryParams.ts +162 -0
- package/src/services/account/AccountService.ts +232 -0
- package/src/services/auth/AuthService.ts +125 -0
- package/src/services/branch/BranchService.ts +330 -0
- package/src/services/business/BusinessService.ts +277 -0
- package/src/services/document/DocumentService.ts +1471 -0
- package/src/services/index.ts +73 -0
- package/src/services/injection_field/InjectionFieldService.ts +483 -0
- package/src/services/inventory/InventoryService.ts +314 -0
- package/src/services/item/ItemService.ts +707 -0
- package/src/services/location/LocationService.ts +505 -0
- package/src/services/logistic/LogisticService.ts +285 -0
- package/src/services/permission/PermissionService.ts +1069 -0
- package/src/services/permission/config/custom/adminPermission.ts +19 -0
- package/src/services/permission/config/custom/config.ts +39 -0
- package/src/services/permission/config/default/adminPermission.ts +129 -0
- package/src/services/permission/config/default/agentPermission.ts +42 -0
- package/src/services/permission/config/default/customerPermission.ts +9 -0
- package/src/services/permission/config/default/driverPermission.ts +4 -0
- package/src/services/permission/config/default/workerPermission.ts +25 -0
- package/src/services/rate/RateService.ts +570 -0
- package/src/services/region/RegionService.ts +353 -0
- package/src/services/repository/RepositoryService.ts +437 -0
- package/src/services/transaction/TransactionService.ts +404 -0
- package/src/services/user/BranchUserService.ts +381 -0
- package/src/services/user/UserRoleService.ts +342 -0
- package/src/services/user/UserService.ts +807 -0
- package/src/services/wallet/WalletService.ts +300 -0
- package/src/utils/dateUtils.ts +26 -0
- package/src/utils/index.ts +2 -0
- package/tsconfig.json +119 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { ApiService, ApiServiceType } from '@/lib';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
buildApiListUrl,
|
|
5
|
+
BuildApiListParamsProps,
|
|
6
|
+
buildApiGetUrl,
|
|
7
|
+
BuildApiGetParamsProps,
|
|
8
|
+
filterOperatorTypes
|
|
9
|
+
} from '@/lib';
|
|
10
|
+
|
|
11
|
+
export const branchUserTypes = {
|
|
12
|
+
customer: "customer",
|
|
13
|
+
retailer: "retailer",
|
|
14
|
+
} as const
|
|
15
|
+
|
|
16
|
+
export const branchUserTargetTypes = {
|
|
17
|
+
customer: "customer",
|
|
18
|
+
retailer: "retailer",
|
|
19
|
+
} as const
|
|
20
|
+
|
|
21
|
+
export type BranchUserType = typeof branchUserTypes[keyof typeof branchUserTypes]
|
|
22
|
+
export type BranchUserTargetType = typeof branchUserTargetTypes[keyof typeof branchUserTargetTypes]
|
|
23
|
+
export type BranchUserTargetKey = keyof typeof branchUserTargetTypes
|
|
24
|
+
|
|
25
|
+
export type BranchUserServiceProps = ApiServiceType & {
|
|
26
|
+
branchUserTargetType?: BranchUserTargetType
|
|
27
|
+
branchUserType?: BranchUserType
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type ListBranchUserProps = BuildApiListParamsProps & {
|
|
31
|
+
branchUserType?: BranchUserType
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type GetBranchUserProps = BuildApiGetParamsProps & {
|
|
35
|
+
id: number | string
|
|
36
|
+
branchUserType: BranchUserType
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type BranchUserCredential = {
|
|
40
|
+
username: string
|
|
41
|
+
password: string
|
|
42
|
+
// userType: UserTargetType
|
|
43
|
+
firstname: string
|
|
44
|
+
lastname: string
|
|
45
|
+
contact: string
|
|
46
|
+
email: string
|
|
47
|
+
status: boolean
|
|
48
|
+
address: string
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// type BranchUserCustomer = {
|
|
52
|
+
// credential: BranchUserCredential,
|
|
53
|
+
// branchUser: {
|
|
54
|
+
// parentUserId: string | number
|
|
55
|
+
// }
|
|
56
|
+
// props?: {
|
|
57
|
+
// branchId: number[]
|
|
58
|
+
// }
|
|
59
|
+
// }
|
|
60
|
+
|
|
61
|
+
// type BranchUserRetailer = {
|
|
62
|
+
// credential: BranchUserCredential,
|
|
63
|
+
// branch_user: {
|
|
64
|
+
// parent_user_id: string | number
|
|
65
|
+
// }
|
|
66
|
+
// props?: {
|
|
67
|
+
// branch_id: number[]
|
|
68
|
+
// }
|
|
69
|
+
// }
|
|
70
|
+
|
|
71
|
+
export type CreateBranchUserProps = {
|
|
72
|
+
branchUserTargetType?: BranchUserTargetType
|
|
73
|
+
branchUserType?: BranchUserType
|
|
74
|
+
// data: BranchUserCustomer | BranchUserRetailer
|
|
75
|
+
data:
|
|
76
|
+
// customer
|
|
77
|
+
{
|
|
78
|
+
customer: {
|
|
79
|
+
credential: BranchUserCredential,
|
|
80
|
+
branchUser: {
|
|
81
|
+
parentUserId: string | number
|
|
82
|
+
}
|
|
83
|
+
props?: {
|
|
84
|
+
branchId: number[]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
} |
|
|
88
|
+
// retailer
|
|
89
|
+
{
|
|
90
|
+
retailer: {
|
|
91
|
+
credential: BranchUserCredential,
|
|
92
|
+
branchUser: {
|
|
93
|
+
parentUserId: string | number
|
|
94
|
+
}
|
|
95
|
+
props?: {
|
|
96
|
+
branchId: number[]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export type UpdateBranchUserProps = {
|
|
103
|
+
id: number
|
|
104
|
+
branchUserTargetType?: BranchUserTargetType
|
|
105
|
+
branchUserType?: BranchUserType
|
|
106
|
+
data:
|
|
107
|
+
// customer
|
|
108
|
+
{
|
|
109
|
+
customer: {
|
|
110
|
+
credential: Omit<BranchUserCredential, "username" | "password"> & { password?: string },
|
|
111
|
+
branchUser: {
|
|
112
|
+
parentUserId: string | number
|
|
113
|
+
}
|
|
114
|
+
props?: {
|
|
115
|
+
branchId: number[]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
} |
|
|
119
|
+
// retailer
|
|
120
|
+
{
|
|
121
|
+
retailer: {
|
|
122
|
+
credential: Omit<BranchUserCredential, "username" | "password"> & { password?: string },
|
|
123
|
+
branchUser: {
|
|
124
|
+
parentUserId: string | number
|
|
125
|
+
}
|
|
126
|
+
props?: {
|
|
127
|
+
branchId: number[]
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export type RemoveBranchUserProps = {
|
|
134
|
+
branchUserTargetType?: BranchUserTargetType
|
|
135
|
+
ids: number[]
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export type GetDataTypeBranchUserProps = {
|
|
139
|
+
branchUserType?: BranchUserType
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const getCreatePayload = (branchUserType: BranchUserType, data: CreateBranchUserProps["data"]) => {
|
|
143
|
+
|
|
144
|
+
if (branchUserType === "customer" && "customer" in data) {
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
credential: {
|
|
148
|
+
username: data.customer.credential.username,
|
|
149
|
+
password: data.customer.credential.password,
|
|
150
|
+
firstname: data.customer.credential.firstname,
|
|
151
|
+
lastname: data.customer.credential.lastname,
|
|
152
|
+
contact: data.customer.credential.contact,
|
|
153
|
+
email: data.customer.credential.email,
|
|
154
|
+
status: (data.customer.credential.status === true) ? 1 : 0,
|
|
155
|
+
address: data.customer.credential.address
|
|
156
|
+
},
|
|
157
|
+
branchUser: {
|
|
158
|
+
parent_user_id: data.customer.branchUser.parentUserId
|
|
159
|
+
},
|
|
160
|
+
props: {
|
|
161
|
+
branch_id: data.customer.props?.branchId ? data.customer.props?.branchId : []
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (branchUserType === "retailer" && "retailer" in data) {
|
|
168
|
+
|
|
169
|
+
return {
|
|
170
|
+
credential: {
|
|
171
|
+
username: data.retailer.credential.username,
|
|
172
|
+
password: data.retailer.credential.password,
|
|
173
|
+
firstname: data.retailer.credential.firstname,
|
|
174
|
+
lastname: data.retailer.credential.lastname,
|
|
175
|
+
contact: data.retailer.credential.contact,
|
|
176
|
+
email: data.retailer.credential.email,
|
|
177
|
+
status: (data.retailer.credential.status === true) ? 1 : 0,
|
|
178
|
+
address: data.retailer.credential.address
|
|
179
|
+
},
|
|
180
|
+
branch_user: {
|
|
181
|
+
parent_user_id: data.retailer.branchUser.parentUserId
|
|
182
|
+
},
|
|
183
|
+
props: {
|
|
184
|
+
branch_id: data.retailer.props?.branchId ? data.retailer.props?.branchId : []
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const getUpdatePayload = (branchUserType: BranchUserType, data: UpdateBranchUserProps["data"]) => {
|
|
192
|
+
|
|
193
|
+
if (branchUserType === "customer" && "customer" in data) {
|
|
194
|
+
|
|
195
|
+
return {
|
|
196
|
+
credential: {
|
|
197
|
+
...(data.customer.credential.password ? { password: data.customer.credential.password } : {}),
|
|
198
|
+
firstname: data.customer.credential.firstname,
|
|
199
|
+
lastname: data.customer.credential.lastname,
|
|
200
|
+
contact: data.customer.credential.contact,
|
|
201
|
+
email: data.customer.credential.email,
|
|
202
|
+
status: (data.customer.credential.status === true) ? 1 : 0,
|
|
203
|
+
address: data.customer.credential.address
|
|
204
|
+
},
|
|
205
|
+
branch_user: {
|
|
206
|
+
parent_user_id: data.customer.branchUser.parentUserId
|
|
207
|
+
},
|
|
208
|
+
props: {
|
|
209
|
+
branch_id: data.customer.props?.branchId ? data.customer.props?.branchId : []
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (branchUserType === "retailer" && "retailer" in data) {
|
|
215
|
+
|
|
216
|
+
return {
|
|
217
|
+
credential: {
|
|
218
|
+
...(data.retailer.credential.password ? { password: data.retailer.credential.password } : {}),
|
|
219
|
+
firstname: data.retailer.credential.firstname,
|
|
220
|
+
lastname: data.retailer.credential.lastname,
|
|
221
|
+
contact: data.retailer.credential.contact,
|
|
222
|
+
email: data.retailer.credential.email,
|
|
223
|
+
status: (data.retailer.credential.status === true) ? 1 : 0,
|
|
224
|
+
address: data.retailer.credential.address
|
|
225
|
+
},
|
|
226
|
+
branchUser: {
|
|
227
|
+
parent_user_id: data.retailer.branchUser.parentUserId
|
|
228
|
+
},
|
|
229
|
+
props: {
|
|
230
|
+
branch_id: data.retailer.props?.branchId ? data.retailer.props?.branchId : []
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export const BranchUserService = (props?: BranchUserServiceProps) => {
|
|
238
|
+
|
|
239
|
+
const { branchUserType = "customer", branchUserTargetType, ...rest } = props ?? {};
|
|
240
|
+
|
|
241
|
+
const { makeCall } = ApiService(rest?.customToken ? { customToken: rest.customToken } : {})
|
|
242
|
+
|
|
243
|
+
const endpoint1 = "user/branch_user";
|
|
244
|
+
const endpoint2 = "user/branch_users"
|
|
245
|
+
|
|
246
|
+
const list = async (props: ListBranchUserProps) => {
|
|
247
|
+
|
|
248
|
+
const { branchUserType: overrideBranchUserType } = props;
|
|
249
|
+
|
|
250
|
+
const url = buildApiListUrl(
|
|
251
|
+
`${endpoint2}/${overrideBranchUserType || branchUserType}`,
|
|
252
|
+
props
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
const response = await makeCall({
|
|
256
|
+
url,
|
|
257
|
+
method: "get",
|
|
258
|
+
payload: {},
|
|
259
|
+
// configuration
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
return response;
|
|
263
|
+
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
const get = async (props: GetBranchUserProps) => {
|
|
267
|
+
|
|
268
|
+
const { id, branchUserType: overrideBranchUserType } = props;
|
|
269
|
+
|
|
270
|
+
const url = buildApiGetUrl(
|
|
271
|
+
`${endpoint1}/${overrideBranchUserType || branchUserType}/${id}`,
|
|
272
|
+
props
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
const response = await makeCall({
|
|
276
|
+
url,
|
|
277
|
+
method: "get",
|
|
278
|
+
payload: {},
|
|
279
|
+
// configuration
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
return response;
|
|
283
|
+
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const create = async ({ data, branchUserType: overrideBranchUserType, branchUserTargetType: overrideBranchUserTargetType }: CreateBranchUserProps) => {
|
|
287
|
+
|
|
288
|
+
let _branchUserType = overrideBranchUserType || branchUserType
|
|
289
|
+
|
|
290
|
+
let payload: any = getCreatePayload(_branchUserType, data)
|
|
291
|
+
let url = `${endpoint1}`;
|
|
292
|
+
|
|
293
|
+
let postData = {
|
|
294
|
+
scope: {
|
|
295
|
+
target: overrideBranchUserTargetType || branchUserTargetType,
|
|
296
|
+
action: "",
|
|
297
|
+
},
|
|
298
|
+
payload
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
const response = await makeCall({
|
|
302
|
+
url,
|
|
303
|
+
method: "post",
|
|
304
|
+
payload: postData
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
return response;
|
|
308
|
+
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
const update = async ({ id, data, branchUserType: overrideBranchUserType, branchUserTargetType: overrideBranchUserTargetType }: UpdateBranchUserProps) => {
|
|
312
|
+
|
|
313
|
+
let url = `${endpoint1}/${id}`
|
|
314
|
+
|
|
315
|
+
let _branchUserType = overrideBranchUserType || branchUserType
|
|
316
|
+
|
|
317
|
+
let payload: any = getUpdatePayload(_branchUserType, data)
|
|
318
|
+
|
|
319
|
+
const postData = {
|
|
320
|
+
scope: {
|
|
321
|
+
target: overrideBranchUserTargetType || branchUserTargetType,
|
|
322
|
+
action: "",
|
|
323
|
+
},
|
|
324
|
+
payload
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const response = await makeCall({
|
|
328
|
+
url,
|
|
329
|
+
method: "put",
|
|
330
|
+
payload: postData
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
return response;
|
|
334
|
+
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const remove = async ({ ids, branchUserTargetType: overrideBranchUserTargetType }: RemoveBranchUserProps) => {
|
|
338
|
+
|
|
339
|
+
let url = `${endpoint2}/delete`
|
|
340
|
+
|
|
341
|
+
const postData = {
|
|
342
|
+
scope: {
|
|
343
|
+
target: overrideBranchUserTargetType || branchUserTargetType,
|
|
344
|
+
},
|
|
345
|
+
payload: {
|
|
346
|
+
ids
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
const response = await makeCall({
|
|
351
|
+
url,
|
|
352
|
+
method: "post",
|
|
353
|
+
payload: postData
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
return response;
|
|
357
|
+
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const getDataTypes = async ({ branchUserType: overrideBranchUserType }: GetDataTypeBranchUserProps) => {
|
|
361
|
+
|
|
362
|
+
let url = `${endpoint2}/data_types/${overrideBranchUserType || branchUserType}`
|
|
363
|
+
|
|
364
|
+
const response = await makeCall({
|
|
365
|
+
url,
|
|
366
|
+
method: "get",
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
return response;
|
|
370
|
+
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
return {
|
|
374
|
+
list,
|
|
375
|
+
get,
|
|
376
|
+
create,
|
|
377
|
+
update,
|
|
378
|
+
remove,
|
|
379
|
+
getDataTypes
|
|
380
|
+
};
|
|
381
|
+
}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { ApiService, ApiServiceType } from '@/lib';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
buildApiListUrl,
|
|
5
|
+
BuildApiListParamsProps,
|
|
6
|
+
buildApiGetUrl,
|
|
7
|
+
BuildApiGetParamsProps,
|
|
8
|
+
filterOperatorTypes
|
|
9
|
+
} from '@/lib';
|
|
10
|
+
|
|
11
|
+
import { PermissionService, permissionScopeTypes, permissionModuleTypes } from '@/services';
|
|
12
|
+
|
|
13
|
+
export const roleTypes = {
|
|
14
|
+
role: "role",
|
|
15
|
+
} as const
|
|
16
|
+
|
|
17
|
+
export const roleTargetTypes = {
|
|
18
|
+
role: "role",
|
|
19
|
+
} as const
|
|
20
|
+
|
|
21
|
+
export type RoleType = typeof roleTypes[keyof typeof roleTypes]
|
|
22
|
+
export type RoleTargetType = typeof roleTargetTypes[keyof typeof roleTargetTypes]
|
|
23
|
+
export type RoleTargetKey = keyof typeof roleTargetTypes
|
|
24
|
+
|
|
25
|
+
export type UserRoleServiceProps = ApiServiceType & {
|
|
26
|
+
roleTargetType?: RoleTargetType
|
|
27
|
+
roleType?: RoleType
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type ListRoleProps = BuildApiListParamsProps & {
|
|
31
|
+
roleType?: RoleType
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type GetRoleProps = BuildApiGetParamsProps & {
|
|
35
|
+
id: number | string
|
|
36
|
+
roleType?: RoleType
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type AssignRoleType = "admin" | "retail" | "workstation"
|
|
40
|
+
|
|
41
|
+
type Role = {
|
|
42
|
+
roleName: string
|
|
43
|
+
assignRoleType: AssignRoleType
|
|
44
|
+
description: string
|
|
45
|
+
status: boolean
|
|
46
|
+
userIds: number[]
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type Permission = {
|
|
50
|
+
scopeType: string
|
|
51
|
+
scopeName: string
|
|
52
|
+
permissionType: string
|
|
53
|
+
status: boolean
|
|
54
|
+
isCustom: boolean
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export type CreateRoleProps = {
|
|
58
|
+
roleTargetType?: RoleTargetType
|
|
59
|
+
roleType?: RoleType
|
|
60
|
+
data: {
|
|
61
|
+
userRole: Role
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type UpdateRoleProps = {
|
|
66
|
+
id: number
|
|
67
|
+
roleTargetType?: RoleTargetType
|
|
68
|
+
roleType?: RoleType
|
|
69
|
+
data: {
|
|
70
|
+
userRole: Omit<Role, "assignRoleType">
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type UpdateRolePermissionProps = {
|
|
75
|
+
id: number
|
|
76
|
+
roleTargetType?: RoleTargetType
|
|
77
|
+
roleType?: RoleType
|
|
78
|
+
data: {
|
|
79
|
+
permissions: Permission[]
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type RemoveRoleProps = {
|
|
84
|
+
roleTargetType?: RoleTargetType
|
|
85
|
+
ids: number[]
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export type GetDataTypeRoleProps = {
|
|
89
|
+
roleType?: RoleType
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const getCreatePayload = (roleType: RoleType, data: CreateRoleProps["data"]) => {
|
|
93
|
+
|
|
94
|
+
if (roleType === "role" && "userRole" in data) {
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
role: {
|
|
98
|
+
role_name: data.userRole.roleName,
|
|
99
|
+
role_type: data.userRole.assignRoleType,
|
|
100
|
+
description: data.userRole.description,
|
|
101
|
+
status: (data.userRole.status === true) ? 1 : 0
|
|
102
|
+
},
|
|
103
|
+
users: data.userRole.userIds
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const getUpdatePayload = (roleType: RoleType, data: UpdateRoleProps["data"]) => {
|
|
110
|
+
|
|
111
|
+
if (roleType === "role" && "userRole" in data) {
|
|
112
|
+
|
|
113
|
+
return {
|
|
114
|
+
role: {
|
|
115
|
+
role_name: data.userRole.roleName,
|
|
116
|
+
description: data.userRole.description,
|
|
117
|
+
status: (data.userRole.status === true) ? 1 : 0
|
|
118
|
+
},
|
|
119
|
+
users: data.userRole.userIds
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const getUpdateRolePermissionPayload = (roleType: RoleType, data: UpdateRolePermissionProps["data"]) => {
|
|
125
|
+
|
|
126
|
+
if (roleType === "role") {
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
permissions: data.permissions.map(i => {
|
|
130
|
+
|
|
131
|
+
// console.log('i', i, permissionScopeTypes)
|
|
132
|
+
console.log('i', i, permissionModuleTypes)
|
|
133
|
+
|
|
134
|
+
let scopeType = ``
|
|
135
|
+
let moduleType = ``
|
|
136
|
+
// let functionType = ``
|
|
137
|
+
|
|
138
|
+
Object.entries(permissionScopeTypes).forEach(([key, item]) => {
|
|
139
|
+
if (key === i.scopeType) {
|
|
140
|
+
scopeType = item.postValue
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
Object.entries(permissionModuleTypes).forEach(([key, item]) => {
|
|
145
|
+
if (key === i.scopeType) {
|
|
146
|
+
console.log('sss ::: ', item, i.scopeName)
|
|
147
|
+
Object.entries(item).forEach(([key2, item2]) => {
|
|
148
|
+
if (key2 === i.scopeName) {
|
|
149
|
+
moduleType = item2.postValue
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
}
|
|
153
|
+
})
|
|
154
|
+
|
|
155
|
+
if (!scopeType) throw Error(`Invalid scopeType: ${i.scopeType}`)
|
|
156
|
+
if (!moduleType) throw Error(`Invalid moduleType: ${i.scopeName}`)
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
scope_type: scopeType,
|
|
160
|
+
scope_name: moduleType,
|
|
161
|
+
permission_type: i.permissionType,
|
|
162
|
+
status: (i.status === true) ? 1 : 0,
|
|
163
|
+
isCustom: i.isCustom === true ? 1 : 0
|
|
164
|
+
}
|
|
165
|
+
})
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export const UserRoleService = (props?: UserRoleServiceProps) => {
|
|
171
|
+
|
|
172
|
+
const { roleType = "role", roleTargetType, ...rest } = props ?? {};
|
|
173
|
+
|
|
174
|
+
const { makeCall } = ApiService(rest?.customToken ? { customToken: rest.customToken } : {})
|
|
175
|
+
|
|
176
|
+
const endpoint1 = "role";
|
|
177
|
+
const endpoint2 = "roles"
|
|
178
|
+
|
|
179
|
+
const list = async (props: ListRoleProps) => {
|
|
180
|
+
|
|
181
|
+
const { roleType: overrideRoleType } = props;
|
|
182
|
+
|
|
183
|
+
const url = buildApiListUrl(
|
|
184
|
+
`${endpoint2}/${overrideRoleType || roleType}`,
|
|
185
|
+
props
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
const response = await makeCall({
|
|
189
|
+
url,
|
|
190
|
+
method: "get",
|
|
191
|
+
payload: {},
|
|
192
|
+
// configuration
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
return response;
|
|
196
|
+
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const get = async (props: GetRoleProps) => {
|
|
200
|
+
|
|
201
|
+
const { id, roleType: overrideRoleType } = props;
|
|
202
|
+
|
|
203
|
+
const url = buildApiGetUrl(
|
|
204
|
+
`${endpoint1}/${overrideRoleType || roleType}/${id}`,
|
|
205
|
+
props
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
const response = await makeCall({
|
|
209
|
+
url,
|
|
210
|
+
method: "get",
|
|
211
|
+
payload: {},
|
|
212
|
+
// configuration
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
return response;
|
|
216
|
+
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const create = async ({ data, roleType: overrideRoleType, roleTargetType: overrideRoleTargetType }: CreateRoleProps) => {
|
|
220
|
+
|
|
221
|
+
let _roleType = overrideRoleType || roleType
|
|
222
|
+
|
|
223
|
+
let payload: any = getCreatePayload(_roleType, data)
|
|
224
|
+
|
|
225
|
+
let url = `${endpoint1}`;
|
|
226
|
+
|
|
227
|
+
let postData = {
|
|
228
|
+
scope: {
|
|
229
|
+
target: overrideRoleTargetType || roleTargetType,
|
|
230
|
+
action: "",
|
|
231
|
+
},
|
|
232
|
+
payload
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const response = await makeCall({
|
|
236
|
+
url,
|
|
237
|
+
method: "post",
|
|
238
|
+
payload: postData
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
return response;
|
|
242
|
+
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
const update = async ({ id, data, roleType: overrideRoleType, roleTargetType: overrideRoleTargetType }: UpdateRoleProps) => {
|
|
246
|
+
|
|
247
|
+
let url = `${endpoint1}/${id}`
|
|
248
|
+
|
|
249
|
+
let _roleType = overrideRoleType || roleType
|
|
250
|
+
|
|
251
|
+
let payload: any = getUpdatePayload(_roleType, data)
|
|
252
|
+
|
|
253
|
+
const postData = {
|
|
254
|
+
scope: {
|
|
255
|
+
target: overrideRoleTargetType || roleTargetType,
|
|
256
|
+
action: "",
|
|
257
|
+
},
|
|
258
|
+
payload
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const response = await makeCall({
|
|
262
|
+
url,
|
|
263
|
+
method: "put",
|
|
264
|
+
payload: postData
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
return response;
|
|
268
|
+
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const remove = async ({ ids, roleTargetType: overrideRoleTargetType }: RemoveRoleProps) => {
|
|
272
|
+
|
|
273
|
+
let url = `${endpoint2}/delete`
|
|
274
|
+
|
|
275
|
+
const postData = {
|
|
276
|
+
scope: {
|
|
277
|
+
target: overrideRoleTargetType || roleTargetType,
|
|
278
|
+
},
|
|
279
|
+
payload: {
|
|
280
|
+
ids
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
const response = await makeCall({
|
|
285
|
+
url,
|
|
286
|
+
method: "post",
|
|
287
|
+
payload: postData
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
return response;
|
|
291
|
+
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
const getDataTypes = async ({ roleType: overrideRoleType }: GetDataTypeRoleProps) => {
|
|
295
|
+
|
|
296
|
+
let url = `${endpoint2}/data_types/${overrideRoleType || roleType}`
|
|
297
|
+
|
|
298
|
+
const response = await makeCall({
|
|
299
|
+
url,
|
|
300
|
+
method: "get",
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
return response;
|
|
304
|
+
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const updateRolePermission = async ({ id, data, roleType: overrideRoleType, roleTargetType: overrideRoleTargetType }: UpdateRolePermissionProps) => {
|
|
308
|
+
|
|
309
|
+
let url = `${endpoint1}/change/${id}`
|
|
310
|
+
|
|
311
|
+
let _roleType = overrideRoleType || roleType
|
|
312
|
+
|
|
313
|
+
let payload: any = getUpdateRolePermissionPayload(_roleType, data)
|
|
314
|
+
|
|
315
|
+
const postData = {
|
|
316
|
+
scope: {
|
|
317
|
+
target: overrideRoleTargetType || roleTargetType,
|
|
318
|
+
action: "",
|
|
319
|
+
},
|
|
320
|
+
payload
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
const response = await makeCall({
|
|
324
|
+
url,
|
|
325
|
+
method: "put",
|
|
326
|
+
payload: postData
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
return response;
|
|
330
|
+
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
return {
|
|
334
|
+
list,
|
|
335
|
+
get,
|
|
336
|
+
create,
|
|
337
|
+
update,
|
|
338
|
+
remove,
|
|
339
|
+
getDataTypes,
|
|
340
|
+
updateRolePermission
|
|
341
|
+
};
|
|
342
|
+
}
|