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.
Files changed (112) hide show
  1. package/.env +1 -0
  2. package/.vscode/launch.json +24 -0
  3. package/dist/config/config.d.ts +6 -0
  4. package/dist/config/config.js +13 -0
  5. package/dist/config/env.d.ts +7 -0
  6. package/dist/config/env.js +16 -0
  7. package/dist/config/index.d.ts +2 -0
  8. package/dist/config/index.js +8 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +32 -0
  11. package/dist/lib/ApiService.d.ts +41 -0
  12. package/dist/lib/ApiService.js +143 -0
  13. package/dist/lib/index.d.ts +4 -0
  14. package/dist/lib/index.js +9 -0
  15. package/dist/lib/queryParams.d.ts +43 -0
  16. package/dist/lib/queryParams.js +99 -0
  17. package/dist/services/account/AccountService.d.ts +52 -0
  18. package/dist/services/account/AccountService.js +119 -0
  19. package/dist/services/auth/AuthService.d.ts +44 -0
  20. package/dist/services/auth/AuthService.js +76 -0
  21. package/dist/services/branch/BranchService.d.ts +124 -0
  22. package/dist/services/branch/BranchService.js +162 -0
  23. package/dist/services/business/BusinessService.d.ts +91 -0
  24. package/dist/services/business/BusinessService.js +153 -0
  25. package/dist/services/document/DocumentService.d.ts +578 -0
  26. package/dist/services/document/DocumentService.js +615 -0
  27. package/dist/services/index.d.ts +36 -0
  28. package/dist/services/index.js +97 -0
  29. package/dist/services/injection_field/InjectionFieldService.d.ts +113 -0
  30. package/dist/services/injection_field/InjectionFieldService.js +220 -0
  31. package/dist/services/inventory/InventoryService.d.ts +27 -0
  32. package/dist/services/inventory/InventoryService.js +231 -0
  33. package/dist/services/item/ItemService.d.ts +227 -0
  34. package/dist/services/item/ItemService.js +411 -0
  35. package/dist/services/location/LocationService.d.ts +154 -0
  36. package/dist/services/location/LocationService.js +256 -0
  37. package/dist/services/logistic/LogisticService.d.ts +104 -0
  38. package/dist/services/logistic/LogisticService.js +150 -0
  39. package/dist/services/permission/PermissionService.d.ts +296 -0
  40. package/dist/services/permission/PermissionService.js +576 -0
  41. package/dist/services/permission/config/custom/adminPermission.d.ts +4 -0
  42. package/dist/services/permission/config/custom/adminPermission.js +18 -0
  43. package/dist/services/permission/config/custom/config.d.ts +40 -0
  44. package/dist/services/permission/config/custom/config.js +23 -0
  45. package/dist/services/permission/config/default/adminPermission.d.ts +2 -0
  46. package/dist/services/permission/config/default/adminPermission.js +129 -0
  47. package/dist/services/permission/config/default/agentPermission.d.ts +2 -0
  48. package/dist/services/permission/config/default/agentPermission.js +43 -0
  49. package/dist/services/permission/config/default/customerPermission.d.ts +2 -0
  50. package/dist/services/permission/config/default/customerPermission.js +10 -0
  51. package/dist/services/permission/config/default/driverPermission.d.ts +2 -0
  52. package/dist/services/permission/config/default/driverPermission.js +4 -0
  53. package/dist/services/permission/config/default/workerPermission.d.ts +2 -0
  54. package/dist/services/permission/config/default/workerPermission.js +25 -0
  55. package/dist/services/rate/RateService.d.ts +201 -0
  56. package/dist/services/rate/RateService.js +303 -0
  57. package/dist/services/region/RegionService.d.ts +111 -0
  58. package/dist/services/region/RegionService.js +193 -0
  59. package/dist/services/repository/RepositoryService.d.ts +153 -0
  60. package/dist/services/repository/RepositoryService.js +243 -0
  61. package/dist/services/transaction/TransactionService.d.ts +153 -0
  62. package/dist/services/transaction/TransactionService.js +173 -0
  63. package/dist/services/user/BranchUserService.d.ts +129 -0
  64. package/dist/services/user/BranchUserService.js +193 -0
  65. package/dist/services/user/UserRoleService.d.ts +105 -0
  66. package/dist/services/user/UserRoleService.js +193 -0
  67. package/dist/services/user/UserService.d.ts +269 -0
  68. package/dist/services/user/UserService.js +477 -0
  69. package/dist/services/wallet/WalletService.d.ts +104 -0
  70. package/dist/services/wallet/WalletService.js +163 -0
  71. package/dist/utils/dateUtils.d.ts +6 -0
  72. package/dist/utils/dateUtils.js +28 -0
  73. package/dist/utils/index.d.ts +2 -0
  74. package/dist/utils/index.js +13 -0
  75. package/package.json +27 -0
  76. package/src/config/config.ts +15 -0
  77. package/src/config/env.ts +18 -0
  78. package/src/config/index.ts +2 -0
  79. package/src/index.ts +41 -0
  80. package/src/lib/ApiService.ts +170 -0
  81. package/src/lib/index.ts +5 -0
  82. package/src/lib/queryParams.ts +162 -0
  83. package/src/services/account/AccountService.ts +232 -0
  84. package/src/services/auth/AuthService.ts +125 -0
  85. package/src/services/branch/BranchService.ts +330 -0
  86. package/src/services/business/BusinessService.ts +277 -0
  87. package/src/services/document/DocumentService.ts +1471 -0
  88. package/src/services/index.ts +73 -0
  89. package/src/services/injection_field/InjectionFieldService.ts +483 -0
  90. package/src/services/inventory/InventoryService.ts +314 -0
  91. package/src/services/item/ItemService.ts +707 -0
  92. package/src/services/location/LocationService.ts +505 -0
  93. package/src/services/logistic/LogisticService.ts +285 -0
  94. package/src/services/permission/PermissionService.ts +1069 -0
  95. package/src/services/permission/config/custom/adminPermission.ts +19 -0
  96. package/src/services/permission/config/custom/config.ts +39 -0
  97. package/src/services/permission/config/default/adminPermission.ts +129 -0
  98. package/src/services/permission/config/default/agentPermission.ts +42 -0
  99. package/src/services/permission/config/default/customerPermission.ts +9 -0
  100. package/src/services/permission/config/default/driverPermission.ts +4 -0
  101. package/src/services/permission/config/default/workerPermission.ts +25 -0
  102. package/src/services/rate/RateService.ts +570 -0
  103. package/src/services/region/RegionService.ts +353 -0
  104. package/src/services/repository/RepositoryService.ts +437 -0
  105. package/src/services/transaction/TransactionService.ts +404 -0
  106. package/src/services/user/BranchUserService.ts +381 -0
  107. package/src/services/user/UserRoleService.ts +342 -0
  108. package/src/services/user/UserService.ts +807 -0
  109. package/src/services/wallet/WalletService.ts +300 -0
  110. package/src/utils/dateUtils.ts +26 -0
  111. package/src/utils/index.ts +2 -0
  112. package/tsconfig.json +119 -0
@@ -0,0 +1,570 @@
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 rateTypes = {
12
+ shippingRate: "shipping_rate",
13
+ shippingRateItem: "shipping_rate_item",
14
+ shippingRule: "shipping_rule",
15
+ taxRate: "tax_rate"
16
+ } as const
17
+
18
+ type RateTypeValue = (typeof rateTypes)[keyof typeof rateTypes]
19
+
20
+ export const rateTargetTypes = {
21
+ shippingRate: "shipping_rate",
22
+ shippingRateItem: "shipping_rate",
23
+ shippingRule: "shipping_rule",
24
+ taxRate: "tax_rate"
25
+ } as const
26
+
27
+
28
+ export const rateCalculationTypes = [
29
+ { id: "fixed", display: "Fixed" },
30
+ { id: "tier", display: "Tier" }
31
+ ]
32
+
33
+ export type RateType = typeof rateTypes[keyof typeof rateTypes] // keyof typeof rateTypes
34
+ export type RateTargetType = typeof rateTargetTypes[keyof typeof rateTargetTypes]
35
+ export type RegionTargetKey = keyof typeof rateTargetTypes
36
+
37
+ export type RateServiceProps = ApiServiceType & {
38
+ rateTargetType?: RateTargetType
39
+ rateType?: RateType
40
+ };
41
+
42
+ export type ListRateProps = BuildApiListParamsProps & {
43
+ // rateType?: RateType
44
+ // rateType?: Omit<RateType, "shippingRateItem"> // skip this type
45
+ rateType?: Exclude<RateType, "shippingRateItem"> // skip this type
46
+ }
47
+
48
+ export type GetRateProps = BuildApiGetParamsProps & {
49
+ id: number | string
50
+ // rateType?: RateType
51
+ // rateType?: Omit<RateType, "shippingRateItem"> // skip this type
52
+ rateType?: Exclude<RateType, "shippingRateItem"> // skip this type
53
+ }
54
+
55
+ type ScopeType = "area" | "location"
56
+ type MeasureType = "weight" | "cbm" | "m3" | "unit"
57
+ type ChargeMethodType = "item_rate_multiply_input_value" | "item_rate_only"
58
+ type CalculateItemConditionType = "highest" | "sum"
59
+
60
+ type RateShipping = {
61
+ rateName: string
62
+ scopeId: number
63
+ scopeType: ScopeType
64
+ description: string
65
+ status: boolean
66
+ }
67
+
68
+ type RateShippingItem = {
69
+ scopeType: string
70
+ scopeId: number
71
+ ruleIds: number[]
72
+ toLocationId: number
73
+ measureType: MeasureType
74
+ }
75
+
76
+ type RateShippingRuleItem = {
77
+ minValue: number
78
+ maxValue: number
79
+ itemRate: number
80
+ }
81
+
82
+ type RateShippingRule = {
83
+ ruleName: string
84
+ calculationType: "fixed" | "tier"
85
+ chargeAmount: number
86
+ description: string
87
+ measureType: MeasureType
88
+ chargeMethod: ChargeMethodType
89
+ customerGroupIds: number[]
90
+ status: boolean
91
+ }
92
+
93
+ type RateTax = {
94
+ rateName: string
95
+ taxPercentage: number
96
+ description: string
97
+ status: boolean
98
+ }
99
+
100
+ export type CreateRateProps = {
101
+ rateTargetType?: RateTargetType
102
+ rateType?: RateType
103
+ // rateType?: Omit<RateType, "shippingRateItem"> // skip this type
104
+ data:
105
+ // for Shipping Rate
106
+ {
107
+ shippingRate: {
108
+ rate: RateShipping,
109
+ }
110
+ } |
111
+ // for Shipping Rate Rule
112
+ {
113
+ shippingRateRule: {
114
+ rule: RateShippingRule,
115
+ items: RateShippingRuleItem[]
116
+ }
117
+ } |
118
+ // for Tax Rate
119
+ {
120
+ taxRate: {
121
+ rate: RateTax
122
+ }
123
+ }
124
+ }
125
+
126
+ export type UpdateRateProps = {
127
+ id: number
128
+ rateTargetType?: RateTargetType
129
+ rateType?: RateType
130
+ data:
131
+ // for Shipping Rate
132
+ {
133
+ shippingRate: {
134
+ rate: Omit<RateShipping, "scopeId" | "scopeType">
135
+ }
136
+ } |
137
+ // for Shipping Rate Item
138
+ {
139
+ shippingRateItem: {
140
+ items: RateShippingItem[]
141
+ }
142
+ } |
143
+ // for Shipping Rate Rule
144
+ {
145
+ shippingRateRule: {
146
+ rule: RateShippingRule,
147
+ items: RateShippingRuleItem[]
148
+ }
149
+ } |
150
+ // for Tax Rate
151
+ {
152
+ taxRate: {
153
+ rate: RateTax,
154
+ props: {
155
+ taxPercentage: number
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ export type CalculateRateProps = {
162
+ id: number
163
+ rateTargetType?: Extract<RateTargetType, "shipping_rate" | "tax_rate"> // only this
164
+ rateType?: Extract<RateType, "shippingRate" | "taxRate"> // only this
165
+ data:
166
+ // only for Shipping Rate
167
+ {
168
+ calculateShippingRate: {
169
+ items: ({
170
+ itemKey: string
171
+ rateId: number
172
+ toScopeType: ScopeType
173
+ toScopeId: number
174
+ userId: number
175
+ measureWeightValue: number
176
+ measureCbmValue: number
177
+ measureUnitValue: number
178
+ calculateItems: ({
179
+ calculateKey: string
180
+ measureTypes: MeasureType[],
181
+ condition: CalculateItemConditionType
182
+ })[]
183
+ })[]
184
+ }
185
+ } &
186
+ // only for Tax Rate
187
+ {
188
+ calculateTaxRate: {
189
+ items: ({
190
+ itemKey: string
191
+ rateId: number
192
+ measureAmountValue: number
193
+ })[]
194
+ }
195
+ }
196
+ }
197
+
198
+ export type RemoveRateProps = {
199
+ rateTargetType?: RateTargetType
200
+ ids: number[]
201
+ }
202
+
203
+ export type RemoveRateItemProps = {
204
+ rateTargetType?: Extract<RateTargetType, "shipping_rate"> // only this
205
+ ids: number[]
206
+ }
207
+
208
+ export type GetDataTypeRateProps = {
209
+ rateType?: RateType
210
+ }
211
+
212
+ // rateType: Omit<RateType, "shippingRateItem">
213
+ const getCreatePayload = (rateType: RateType, data: CreateRateProps["data"]) => {
214
+
215
+ if (rateType === "shipping_rate" && "shippingRate" in data) {
216
+ return {
217
+ rate: {
218
+ rate_name: data.shippingRate.rate.rateName,
219
+ scope_id: data.shippingRate.rate.scopeId,
220
+ scope_type: data.shippingRate.rate.scopeType,
221
+ description: data.shippingRate.rate.description,
222
+ status: (data.shippingRate.rate.status === true) ? 1 : 0
223
+ }
224
+ }
225
+ }
226
+
227
+ if (rateType === "shipping_rule" && "shippingRateRule" in data) {
228
+ return {
229
+ rule: {
230
+ ruleName: data.shippingRateRule.rule.ruleName,
231
+ calculationType: data.shippingRateRule.rule.calculationType,
232
+ description: data.shippingRateRule.rule.description,
233
+ base_fee: data.shippingRateRule.rule.chargeAmount,
234
+ status: (data.shippingRateRule.rule.status === true) ? 1 : 0
235
+ },
236
+ props: {
237
+ measure_type: data.shippingRateRule.rule.measureType,
238
+ charge_method: data.shippingRateRule.rule.chargeMethod,
239
+ customer_groups: data.shippingRateRule.rule.customerGroupIds
240
+ },
241
+ items: data.shippingRateRule.items.map(i => ({
242
+ min_value: i.minValue,
243
+ max_value: i.maxValue,
244
+ item_rate: i.itemRate
245
+ }))
246
+ }
247
+ }
248
+
249
+ if (rateType === "tax_rate" && "taxRate" in data) {
250
+ return {
251
+ rate: {
252
+ rate_name: data.taxRate.rate.rateName,
253
+ description: data.taxRate.rate.description,
254
+ status: (data.taxRate.rate.status === true) ? 1 : 0
255
+ },
256
+ props: {
257
+ tax_percentage: data.taxRate.rate.taxPercentage
258
+ }
259
+ }
260
+ }
261
+
262
+ }
263
+
264
+ const getUpdatePayload = (rateType: RateType, data: UpdateRateProps["data"]) => {
265
+
266
+ if (rateType === "shipping_rate" && "shippingRate" in data) {
267
+ return {
268
+ rate: {
269
+ rate_name: data.shippingRate.rate.rateName,
270
+ description: data.shippingRate.rate.description,
271
+ status: (data.shippingRate.rate.status === true) ? 1 : 0
272
+ }
273
+ }
274
+ }
275
+
276
+ if (rateType === "shipping_rate_item" && "shippingRateItem" in data) {
277
+ return {
278
+ items: data.shippingRateItem.items.map(i => ({
279
+ scopeType: i.scopeType,
280
+ scopeId: i.scopeId,
281
+ props: {
282
+ rule_id: i.ruleIds,
283
+ to_location_id: i.toLocationId,
284
+ measure_type: i.measureType
285
+ }
286
+ }))
287
+ }
288
+ }
289
+
290
+ if (rateType === "shipping_rule" && "shippingRateRule" in data) {
291
+ return {
292
+ rule: {
293
+ ruleName: data.shippingRateRule.rule.ruleName,
294
+ calculationType: data.shippingRateRule.rule.calculationType,
295
+ description: data.shippingRateRule.rule.description,
296
+ base_fee: data.shippingRateRule.rule.chargeAmount,
297
+ status: (data.shippingRateRule.rule.status === true) ? 1 : 0
298
+ },
299
+ props: {
300
+ measure_type: data.shippingRateRule.rule.measureType,
301
+ charge_method: data.shippingRateRule.rule.chargeMethod,
302
+ customer_groups: data.shippingRateRule.rule.customerGroupIds
303
+ },
304
+ items: data.shippingRateRule.items.map(i => ({
305
+ min_value: i.minValue,
306
+ max_value: i.maxValue,
307
+ item_rate: i.itemRate
308
+ }))
309
+ }
310
+ }
311
+
312
+ if (rateType === "tax_rate" && "taxRate" in data) {
313
+ return {
314
+ rate: {
315
+ rate_name: data.taxRate.rate.rateName,
316
+ description: data.taxRate.rate.description,
317
+ status: (data.taxRate.rate.status === true) ? 1 : 0
318
+ },
319
+ props: {
320
+ tax_percentage: data.taxRate.rate.taxPercentage
321
+ }
322
+ }
323
+ }
324
+ }
325
+
326
+ const getCalculatePayload = (rateType: Extract<RateType, "shippingRate" | "taxRate">, data: CalculateRateProps["data"]) => {
327
+
328
+ if (rateType === "shippingRate") {
329
+ return {
330
+ items: data.calculateShippingRate.items.map(i => ({
331
+ item_key: i.itemKey,
332
+ rate: {
333
+ rate_id: i.rateId,
334
+ to_scope_type: i.toScopeType,
335
+ to_scope_id: i.toScopeId,
336
+ user_id: i.userId
337
+ },
338
+ measure_values: {
339
+ weight: i.measureWeightValue,
340
+ cbm: i.measureCbmValue,
341
+ unit: i.measureUnitValue
342
+ },
343
+ calculate_items: i.calculateItems.map(i2 => ({
344
+ calculate_key: i2.calculateKey,
345
+ measure_types: i2.measureTypes,
346
+ condition: i2.condition
347
+ }))
348
+ }))
349
+ }
350
+ }
351
+
352
+ if (rateType === "taxRate") {
353
+ return {
354
+ items: data.calculateTaxRate.items.map(i => ({
355
+ item_key: i.itemKey,
356
+ rate: {
357
+ rate_id: i.rateId
358
+ },
359
+ measure_values: {
360
+ amount: i.measureAmountValue
361
+ }
362
+ }))
363
+ }
364
+ }
365
+ }
366
+
367
+ export const RateService = (props?: RateServiceProps) => {
368
+
369
+ const { rateType = "tax_rate", rateTargetType, ...rest } = props ?? {};
370
+
371
+ // const rateType: RateTypeValue = _rateType ? rateTypes[_rateType] : "tax_rate"
372
+
373
+ const { makeCall } = ApiService(rest?.customToken ? { customToken: rest.customToken } : {})
374
+
375
+ const endpoint1 = "rate";
376
+ const endpoint2 = "rates"
377
+
378
+ const list = async (props: ListRateProps) => {
379
+
380
+ const { rateType: overrideRateType } = props;
381
+
382
+ // const overrideRateType: RateTypeValue = _overrideRateType ? rateTypes[_overrideRateType] : "tax_rate"
383
+
384
+ const url = buildApiListUrl(
385
+ `${endpoint2}/${overrideRateType || rateType}`,
386
+ props
387
+ );
388
+
389
+ const response = await makeCall({
390
+ url,
391
+ method: "get",
392
+ payload: {},
393
+ // configuration
394
+ });
395
+
396
+ return response;
397
+
398
+ }
399
+
400
+ const get = async (props: GetRateProps) => {
401
+
402
+ const { id, rateType: overrideRateType } = props;
403
+
404
+ // const overrideRateType ? rateTypes[_overrideRateType] : "tax_rate"
405
+
406
+ const url = buildApiGetUrl(
407
+ `${endpoint1}/${overrideRateType || rateType}/${id}`,
408
+ props
409
+ );
410
+
411
+ const response = await makeCall({
412
+ url,
413
+ method: "get",
414
+ payload: {},
415
+ // configuration
416
+ });
417
+
418
+ return response;
419
+
420
+ }
421
+
422
+ const create = async ({ data, rateType: overrideRateType, rateTargetType: overrideRateTargetType }: CreateRateProps) => {
423
+
424
+ let _rateType = overrideRateType || rateType
425
+
426
+ let payload: any = getCreatePayload(_rateType, data)
427
+
428
+ let url = `${endpoint1}`;
429
+
430
+ let postData = {
431
+ scope: {
432
+ target: overrideRateTargetType || rateTargetType,
433
+ action: "",
434
+ },
435
+ payload
436
+ }
437
+
438
+ const response = await makeCall({
439
+ url,
440
+ method: "post",
441
+ payload: postData
442
+ });
443
+
444
+ return response;
445
+
446
+ }
447
+
448
+ const update = async ({ id, data, rateType: overrideRateType, rateTargetType: overrideRateTargetType }: UpdateRateProps) => {
449
+
450
+ let url = `${endpoint1}/${id}`
451
+
452
+ let _rateType = overrideRateType || rateType
453
+
454
+ let payload: any = getUpdatePayload(_rateType, data)
455
+
456
+ const postData = {
457
+ scope: {
458
+ target: overrideRateTargetType || rateTargetType,
459
+ action: "",
460
+ },
461
+ payload
462
+ }
463
+
464
+ const response = await makeCall({
465
+ url,
466
+ method: "put",
467
+ payload: postData
468
+ });
469
+
470
+ return response;
471
+
472
+ }
473
+
474
+ const remove = async ({ ids, rateTargetType: overrideRateTargetType }: RemoveRateProps) => {
475
+
476
+ let url = `${endpoint2}/delete`
477
+
478
+ const postData = {
479
+ scope: {
480
+ target: overrideRateTargetType || rateTargetType,
481
+ },
482
+ payload: {
483
+ ids
484
+ }
485
+ }
486
+
487
+ const response = await makeCall({
488
+ url,
489
+ method: "post",
490
+ payload: postData
491
+ });
492
+
493
+ return response;
494
+ }
495
+
496
+ const removeItem = async ({ ids, rateTargetType: overrideRateTargetType }: RemoveRateItemProps) => {
497
+
498
+ let url = `${endpoint2}/delete_item`
499
+
500
+ const postData = {
501
+ scope: {
502
+ target: overrideRateTargetType || rateTargetType,
503
+ },
504
+ payload: {
505
+ ids
506
+ }
507
+ }
508
+
509
+ const response = await makeCall({
510
+ url,
511
+ method: "post",
512
+ payload: postData
513
+ });
514
+
515
+ return response;
516
+
517
+ }
518
+
519
+ const getDataTypes = async ({ rateType: overrideRateType }: GetDataTypeRateProps) => {
520
+
521
+ let url = `${endpoint1}/data_types/${overrideRateType || rateType}`
522
+
523
+ const response = await makeCall({
524
+ url,
525
+ method: "get",
526
+ });
527
+
528
+ return response;
529
+
530
+ }
531
+
532
+ const calculateRate = async ({ data, rateType: overrideRateType, rateTargetType: overrideRateTargetType }: CalculateRateProps) => {
533
+
534
+ let url = `${endpoint1}/calculate_rate`
535
+
536
+ let payload: any
537
+
538
+ if (overrideRateType) {
539
+ payload = getCalculatePayload(overrideRateType, data)
540
+ }
541
+
542
+ const postData = {
543
+ scope: {
544
+ target: overrideRateTargetType || rateTargetType,
545
+ action: "",
546
+ },
547
+ payload
548
+ }
549
+
550
+ const response = await makeCall({
551
+ url,
552
+ method: "put",
553
+ payload: postData
554
+ });
555
+
556
+ return response;
557
+
558
+ }
559
+
560
+ return {
561
+ list,
562
+ get,
563
+ create,
564
+ update,
565
+ remove,
566
+ removeItem,
567
+ getDataTypes,
568
+ calculateRate
569
+ };
570
+ }