@newpeak/barista-cli 0.1.4 → 0.1.6

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 (222) hide show
  1. package/dist/commands/liberica/auth/index.d.ts.map +1 -1
  2. package/dist/commands/liberica/auth/index.js +5 -0
  3. package/dist/commands/liberica/auth/index.js.map +1 -1
  4. package/dist/commands/liberica/currency/create.d.ts +3 -0
  5. package/dist/commands/liberica/currency/create.d.ts.map +1 -0
  6. package/dist/commands/liberica/currency/create.js +168 -0
  7. package/dist/commands/liberica/currency/create.js.map +1 -0
  8. package/dist/commands/liberica/currency/delete.d.ts +3 -0
  9. package/dist/commands/liberica/currency/delete.d.ts.map +1 -0
  10. package/dist/commands/liberica/currency/delete.js +122 -0
  11. package/dist/commands/liberica/currency/delete.js.map +1 -0
  12. package/dist/commands/liberica/currency/disable.d.ts +3 -0
  13. package/dist/commands/liberica/currency/disable.d.ts.map +1 -0
  14. package/dist/commands/liberica/currency/disable.js +145 -0
  15. package/dist/commands/liberica/currency/disable.js.map +1 -0
  16. package/dist/commands/liberica/currency/enable.d.ts +3 -0
  17. package/dist/commands/liberica/currency/enable.d.ts.map +1 -0
  18. package/dist/commands/liberica/currency/enable.js +125 -0
  19. package/dist/commands/liberica/currency/enable.js.map +1 -0
  20. package/dist/commands/liberica/currency/get.d.ts +3 -0
  21. package/dist/commands/liberica/currency/get.d.ts.map +1 -0
  22. package/dist/commands/liberica/currency/get.js +80 -0
  23. package/dist/commands/liberica/currency/get.js.map +1 -0
  24. package/dist/commands/liberica/currency/index.d.ts +3 -0
  25. package/dist/commands/liberica/currency/index.d.ts.map +1 -0
  26. package/dist/commands/liberica/currency/index.js +21 -0
  27. package/dist/commands/liberica/currency/index.js.map +1 -0
  28. package/dist/commands/liberica/currency/list.d.ts +3 -0
  29. package/dist/commands/liberica/currency/list.d.ts.map +1 -0
  30. package/dist/commands/liberica/currency/list.js +106 -0
  31. package/dist/commands/liberica/currency/list.js.map +1 -0
  32. package/dist/commands/liberica/currency/update.d.ts +3 -0
  33. package/dist/commands/liberica/currency/update.d.ts.map +1 -0
  34. package/dist/commands/liberica/currency/update.js +123 -0
  35. package/dist/commands/liberica/currency/update.js.map +1 -0
  36. package/dist/commands/liberica/index.d.ts.map +1 -1
  37. package/dist/commands/liberica/index.js +11 -0
  38. package/dist/commands/liberica/index.js.map +1 -1
  39. package/dist/commands/liberica/materials/create.d.ts +3 -0
  40. package/dist/commands/liberica/materials/create.d.ts.map +1 -0
  41. package/dist/commands/liberica/materials/create.js +154 -0
  42. package/dist/commands/liberica/materials/create.js.map +1 -0
  43. package/dist/commands/liberica/materials/delete.d.ts +3 -0
  44. package/dist/commands/liberica/materials/delete.d.ts.map +1 -0
  45. package/dist/commands/liberica/materials/delete.js +104 -0
  46. package/dist/commands/liberica/materials/delete.js.map +1 -0
  47. package/dist/commands/liberica/materials/disable.d.ts +3 -0
  48. package/dist/commands/liberica/materials/disable.d.ts.map +1 -0
  49. package/dist/commands/liberica/materials/disable.js +146 -0
  50. package/dist/commands/liberica/materials/disable.js.map +1 -0
  51. package/dist/commands/liberica/materials/enable.d.ts +3 -0
  52. package/dist/commands/liberica/materials/enable.d.ts.map +1 -0
  53. package/dist/commands/liberica/materials/enable.js +126 -0
  54. package/dist/commands/liberica/materials/enable.js.map +1 -0
  55. package/dist/commands/liberica/materials/get.d.ts +3 -0
  56. package/dist/commands/liberica/materials/get.d.ts.map +1 -0
  57. package/dist/commands/liberica/materials/get.js +71 -0
  58. package/dist/commands/liberica/materials/get.js.map +1 -0
  59. package/dist/commands/liberica/materials/index.d.ts +3 -0
  60. package/dist/commands/liberica/materials/index.d.ts.map +1 -0
  61. package/dist/commands/liberica/materials/index.js +21 -0
  62. package/dist/commands/liberica/materials/index.js.map +1 -0
  63. package/dist/commands/liberica/materials/list.d.ts +3 -0
  64. package/dist/commands/liberica/materials/list.d.ts.map +1 -0
  65. package/dist/commands/liberica/materials/list.js +107 -0
  66. package/dist/commands/liberica/materials/list.js.map +1 -0
  67. package/dist/commands/liberica/materials/update.d.ts +3 -0
  68. package/dist/commands/liberica/materials/update.d.ts.map +1 -0
  69. package/dist/commands/liberica/materials/update.js +118 -0
  70. package/dist/commands/liberica/materials/update.js.map +1 -0
  71. package/dist/commands/liberica/suppliers/create.d.ts +3 -0
  72. package/dist/commands/liberica/suppliers/create.d.ts.map +1 -0
  73. package/dist/commands/liberica/suppliers/create.js +140 -0
  74. package/dist/commands/liberica/suppliers/create.js.map +1 -0
  75. package/dist/commands/liberica/suppliers/delete.d.ts +3 -0
  76. package/dist/commands/liberica/suppliers/delete.d.ts.map +1 -0
  77. package/dist/commands/liberica/suppliers/delete.js +102 -0
  78. package/dist/commands/liberica/suppliers/delete.js.map +1 -0
  79. package/dist/commands/liberica/suppliers/disable.d.ts +3 -0
  80. package/dist/commands/liberica/suppliers/disable.d.ts.map +1 -0
  81. package/dist/commands/liberica/suppliers/disable.js +144 -0
  82. package/dist/commands/liberica/suppliers/disable.js.map +1 -0
  83. package/dist/commands/liberica/suppliers/enable.d.ts +3 -0
  84. package/dist/commands/liberica/suppliers/enable.d.ts.map +1 -0
  85. package/dist/commands/liberica/suppliers/enable.js +124 -0
  86. package/dist/commands/liberica/suppliers/enable.js.map +1 -0
  87. package/dist/commands/liberica/suppliers/get.d.ts +3 -0
  88. package/dist/commands/liberica/suppliers/get.d.ts.map +1 -0
  89. package/dist/commands/liberica/suppliers/get.js +75 -0
  90. package/dist/commands/liberica/suppliers/get.js.map +1 -0
  91. package/dist/commands/liberica/suppliers/index.d.ts +3 -0
  92. package/dist/commands/liberica/suppliers/index.d.ts.map +1 -0
  93. package/dist/commands/liberica/suppliers/index.js +21 -0
  94. package/dist/commands/liberica/suppliers/index.js.map +1 -0
  95. package/dist/commands/liberica/suppliers/list.d.ts +3 -0
  96. package/dist/commands/liberica/suppliers/list.d.ts.map +1 -0
  97. package/dist/commands/liberica/suppliers/list.js +100 -0
  98. package/dist/commands/liberica/suppliers/list.js.map +1 -0
  99. package/dist/commands/liberica/suppliers/update.d.ts +3 -0
  100. package/dist/commands/liberica/suppliers/update.d.ts.map +1 -0
  101. package/dist/commands/liberica/suppliers/update.js +122 -0
  102. package/dist/commands/liberica/suppliers/update.js.map +1 -0
  103. package/dist/commands/liberica/uoms/create.d.ts +3 -0
  104. package/dist/commands/liberica/uoms/create.d.ts.map +1 -0
  105. package/dist/commands/liberica/uoms/create.js +120 -0
  106. package/dist/commands/liberica/uoms/create.js.map +1 -0
  107. package/dist/commands/liberica/uoms/delete.d.ts +3 -0
  108. package/dist/commands/liberica/uoms/delete.d.ts.map +1 -0
  109. package/dist/commands/liberica/uoms/delete.js +104 -0
  110. package/dist/commands/liberica/uoms/delete.js.map +1 -0
  111. package/dist/commands/liberica/uoms/disable.d.ts +3 -0
  112. package/dist/commands/liberica/uoms/disable.d.ts.map +1 -0
  113. package/dist/commands/liberica/uoms/disable.js +146 -0
  114. package/dist/commands/liberica/uoms/disable.js.map +1 -0
  115. package/dist/commands/liberica/uoms/enable.d.ts +3 -0
  116. package/dist/commands/liberica/uoms/enable.d.ts.map +1 -0
  117. package/dist/commands/liberica/uoms/enable.js +126 -0
  118. package/dist/commands/liberica/uoms/enable.js.map +1 -0
  119. package/dist/commands/liberica/uoms/get.d.ts +3 -0
  120. package/dist/commands/liberica/uoms/get.d.ts.map +1 -0
  121. package/dist/commands/liberica/uoms/get.js +71 -0
  122. package/dist/commands/liberica/uoms/get.js.map +1 -0
  123. package/dist/commands/liberica/uoms/index.d.ts +3 -0
  124. package/dist/commands/liberica/uoms/index.d.ts.map +1 -0
  125. package/dist/commands/liberica/uoms/index.js +21 -0
  126. package/dist/commands/liberica/uoms/index.js.map +1 -0
  127. package/dist/commands/liberica/uoms/list.d.ts +3 -0
  128. package/dist/commands/liberica/uoms/list.d.ts.map +1 -0
  129. package/dist/commands/liberica/uoms/list.js +98 -0
  130. package/dist/commands/liberica/uoms/list.js.map +1 -0
  131. package/dist/commands/liberica/uoms/update.d.ts +3 -0
  132. package/dist/commands/liberica/uoms/update.d.ts.map +1 -0
  133. package/dist/commands/liberica/uoms/update.js +115 -0
  134. package/dist/commands/liberica/uoms/update.js.map +1 -0
  135. package/dist/core/api/client.d.ts +34 -0
  136. package/dist/core/api/client.d.ts.map +1 -1
  137. package/dist/core/api/client.js +650 -0
  138. package/dist/core/api/client.js.map +1 -1
  139. package/dist/index.js +1 -1
  140. package/dist/types/currency.d.ts +74 -0
  141. package/dist/types/currency.d.ts.map +1 -0
  142. package/dist/types/currency.js +2 -0
  143. package/dist/types/currency.js.map +1 -0
  144. package/dist/types/index.d.ts +5 -1
  145. package/dist/types/index.d.ts.map +1 -1
  146. package/dist/types/material.d.ts +49 -0
  147. package/dist/types/material.d.ts.map +1 -0
  148. package/dist/types/material.js +2 -0
  149. package/dist/types/material.js.map +1 -0
  150. package/dist/types/supplier.d.ts +53 -0
  151. package/dist/types/supplier.d.ts.map +1 -0
  152. package/dist/types/supplier.js +2 -0
  153. package/dist/types/supplier.js.map +1 -0
  154. package/dist/types/uom.d.ts +47 -0
  155. package/dist/types/uom.d.ts.map +1 -0
  156. package/dist/types/uom.js +2 -0
  157. package/dist/types/uom.js.map +1 -0
  158. package/docs/COMMAND_DESIGN_SPEC.md +42 -13
  159. package/docs/commands/liberica/currency/create.md +145 -0
  160. package/docs/commands/liberica/currency/delete.md +121 -0
  161. package/docs/commands/liberica/currency/disable.md +119 -0
  162. package/docs/commands/liberica/currency/enable.md +115 -0
  163. package/docs/commands/liberica/currency/get.md +118 -0
  164. package/docs/commands/liberica/currency/list.md +149 -0
  165. package/docs/commands/liberica/currency/update.md +141 -0
  166. package/docs/commands/liberica/materials/create.md +293 -0
  167. package/docs/commands/liberica/materials/delete.md +240 -0
  168. package/docs/commands/liberica/materials/disable.md +150 -0
  169. package/docs/commands/liberica/materials/enable.md +146 -0
  170. package/docs/commands/liberica/materials/get.md +188 -0
  171. package/docs/commands/liberica/materials/list.md +198 -0
  172. package/docs/commands/liberica/materials/update.md +250 -0
  173. package/docs/commands/liberica/uoms/create.md +136 -0
  174. package/docs/commands/liberica/uoms/delete.md +119 -0
  175. package/docs/commands/liberica/uoms/disable.md +117 -0
  176. package/docs/commands/liberica/uoms/enable.md +115 -0
  177. package/docs/commands/liberica/uoms/get.md +119 -0
  178. package/docs/commands/liberica/uoms/list.md +155 -0
  179. package/docs/commands/liberica/uoms/update.md +148 -0
  180. package/package.json +2 -4
  181. package/src/commands/liberica/auth/index.ts +6 -0
  182. package/src/commands/liberica/currency/create.ts +183 -0
  183. package/src/commands/liberica/currency/delete.ts +124 -0
  184. package/src/commands/liberica/currency/disable.ts +147 -0
  185. package/src/commands/liberica/currency/enable.ts +128 -0
  186. package/src/commands/liberica/currency/get.ts +91 -0
  187. package/src/commands/liberica/currency/index.ts +23 -0
  188. package/src/commands/liberica/currency/list.ts +140 -0
  189. package/src/commands/liberica/currency/update.ts +129 -0
  190. package/src/commands/liberica/index.ts +11 -0
  191. package/src/commands/liberica/materials/create.ts +168 -0
  192. package/src/commands/liberica/materials/delete.ts +105 -0
  193. package/src/commands/liberica/materials/disable.ts +148 -0
  194. package/src/commands/liberica/materials/enable.ts +129 -0
  195. package/src/commands/liberica/materials/get.ts +83 -0
  196. package/src/commands/liberica/materials/index.ts +23 -0
  197. package/src/commands/liberica/materials/list.ts +142 -0
  198. package/src/commands/liberica/materials/update.ts +125 -0
  199. package/src/commands/liberica/suppliers/create.ts +149 -0
  200. package/src/commands/liberica/suppliers/delete.ts +102 -0
  201. package/src/commands/liberica/suppliers/disable.ts +145 -0
  202. package/src/commands/liberica/suppliers/enable.ts +126 -0
  203. package/src/commands/liberica/suppliers/get.ts +86 -0
  204. package/src/commands/liberica/suppliers/index.ts +23 -0
  205. package/src/commands/liberica/suppliers/list.ts +134 -0
  206. package/src/commands/liberica/suppliers/update.ts +128 -0
  207. package/src/commands/liberica/uoms/create.ts +134 -0
  208. package/src/commands/liberica/uoms/delete.ts +105 -0
  209. package/src/commands/liberica/uoms/disable.ts +148 -0
  210. package/src/commands/liberica/uoms/enable.ts +129 -0
  211. package/src/commands/liberica/uoms/get.ts +83 -0
  212. package/src/commands/liberica/uoms/index.ts +23 -0
  213. package/src/commands/liberica/uoms/list.ts +129 -0
  214. package/src/commands/liberica/uoms/update.ts +124 -0
  215. package/src/core/api/client.ts +878 -57
  216. package/src/index.ts +1 -1
  217. package/src/types/currency.ts +90 -0
  218. package/src/types/index.ts +5 -2
  219. package/src/types/material.ts +61 -0
  220. package/src/types/supplier.ts +66 -0
  221. package/src/types/uom.ts +60 -0
  222. package/bin/barista.js +0 -3
@@ -20,8 +20,29 @@ import {
20
20
  ClientQueryParams,
21
21
  ClientApiResponse,
22
22
  } from '../../types/client.js';
23
+ import {
24
+ CreateSupplierRequest,
25
+ UpdateSupplierRequest,
26
+ SupplierQueryParams,
27
+ SupplierApiResponse,
28
+ } from '../../types/supplier.js';
23
29
  import { OrgListItem } from '../../types/org.js';
24
30
  import { PositionListItem } from '../../types/position.js';
31
+ import {
32
+ CreateUomRequest,
33
+ UpdateUomRequest,
34
+ UomQueryParams,
35
+ UomApiResponse,
36
+ } from '../../types/uom.js';
37
+ import {
38
+ CreateCurrencyRequest,
39
+ UpdateCurrencyRequest,
40
+ CurrencyQueryParams,
41
+ CurrencyApiResponse,
42
+ CurrencyDefaultResponse,
43
+ } from '../../types/currency.js';
44
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
+ import { ApiResponse, Material, MaterialApiResponse, MaterialQueryParams, MaterialRequest } from '../../types/material.js';
25
46
 
26
47
  export interface LoginResponse {
27
48
  token: string;
@@ -896,68 +917,868 @@ export const apiClient = {
896
917
  }
897
918
  },
898
919
 
899
- };
920
+ async listSuppliers(
921
+ environment: Environment,
922
+ tenant: string,
923
+ params: SupplierQueryParams
924
+ ): Promise<SupplierApiResponse> {
925
+ try {
926
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
927
+ if (!token) {
928
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
929
+ }
930
+ const client = createAPIClient('liberica' as Service, environment, tenant);
931
+ client.setAuthToken(token);
932
+ const queryString = new URLSearchParams();
933
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
934
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
935
+ if (params.status) queryString.append('status', params.status.toString());
936
+ if (params.supplierCode) queryString.append('supplierCode', params.supplierCode);
937
+ if (params.supplierName) queryString.append('supplierName', params.supplierName);
938
+ const url = `/api/enterprise/purchases/supplier/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
939
+ const response = await client.getClient().get<SupplierApiResponse>(url);
940
+ return response.data;
941
+ } catch (error) {
942
+ return handleApiErrorSupplier(error);
943
+ }
944
+ },
900
945
 
901
- function handleApiError(error: unknown): EmployeeApiResponse {
902
- if (axios.isAxiosError(error)) {
903
- const axiosError = error as AxiosError<Record<string, unknown>>;
904
- const responseData = axiosError.response?.data;
905
- if (responseData) {
906
- const success = responseData.success as boolean | undefined;
907
- if (success === false) {
908
- const code = responseData.code as string | undefined;
909
- const message = responseData.message as string | undefined;
910
- const errorObj = responseData.error as { code?: string; message?: string } | undefined;
911
- if (!errorObj && (code || message)) {
912
- return {
913
- success: false,
914
- error: {
915
- code: code || 'API_ERROR',
916
- message: message || 'API error occurred',
917
- },
918
- };
919
- }
946
+ async getSupplier(
947
+ environment: Environment,
948
+ tenant: string,
949
+ supplierId: string
950
+ ): Promise<SupplierApiResponse> {
951
+ try {
952
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
953
+ if (!token) {
954
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
920
955
  }
921
- return responseData as unknown as EmployeeApiResponse;
956
+ const client = createAPIClient('liberica' as Service, environment, tenant);
957
+ client.setAuthToken(token);
958
+ const response = await client.getClient().get<SupplierApiResponse>(
959
+ `/api/enterprise/purchases/supplier/detail?supplierId=${supplierId}`
960
+ );
961
+ return response.data;
962
+ } catch (error) {
963
+ return handleApiErrorSupplier(error);
922
964
  }
923
- return {
924
- success: false,
925
- error: {
926
- code: 'NETWORK_ERROR',
927
- message: axiosError.message || 'Network error occurred',
928
- },
929
- };
930
- }
931
- return {
932
- success: false,
933
- error: {
934
- code: 'UNKNOWN_ERROR',
935
- message: error instanceof Error ? error.message : 'Unknown error occurred',
936
- },
937
- };
938
- }
965
+ },
939
966
 
940
- function handleApiErrorClient(error: unknown): ClientApiResponse {
941
- if (axios.isAxiosError(error)) {
942
- const axiosError = error as AxiosError<Record<string, unknown>>;
943
- const responseData = axiosError.response?.data;
944
- if (responseData) {
945
- const success = responseData.success as boolean | undefined;
946
- if (success === false) {
947
- const code = responseData.code as string | undefined;
948
- const message = responseData.message as string | undefined;
949
- const errorObj = responseData.error as { code?: string; message?: string } | undefined;
950
- if (!errorObj && (code || message)) {
951
- return {
952
- success: false,
953
- error: {
954
- code: code || 'API_ERROR',
955
- message: message || 'API error occurred',
956
- },
957
- };
958
- }
967
+ async getMaterial(
968
+ environment: Environment,
969
+ tenant: string,
970
+ materialId: string
971
+ ): Promise<MaterialApiResponse> {
972
+ try {
973
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
974
+ if (!token) {
975
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
959
976
  }
960
- return responseData as unknown as ClientApiResponse;
977
+ const client = createAPIClient('liberica' as Service, environment, tenant);
978
+ client.setAuthToken(token);
979
+ const response = await client.getClient().get<MaterialApiResponse>(
980
+ `/api/enterprise/sales/material/detail?materialId=${materialId}`
981
+ );
982
+ return response.data;
983
+ } catch (error) {
984
+ return handleApiErrorMaterial(error);
985
+ }
986
+ },
987
+
988
+ async listMaterials(
989
+ environment: Environment,
990
+ tenant: string,
991
+ params: MaterialQueryParams
992
+ ): Promise<MaterialApiResponse> {
993
+ try {
994
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
995
+ if (!token) {
996
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
997
+ }
998
+ const client = createAPIClient('liberica' as Service, environment, tenant);
999
+ client.setAuthToken(token);
1000
+ const queryString = new URLSearchParams();
1001
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1002
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1003
+ if (params.statusFlag) queryString.append('statusFlag', params.statusFlag.toString());
1004
+ if (params.materialClass) queryString.append('materialClass', params.materialClass);
1005
+ if (params.keyword) queryString.append('keyword', params.keyword);
1006
+ const url = `/api/enterprise/sales/material/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1007
+ const response = await client.getClient().get<MaterialApiResponse>(url);
1008
+ return response.data;
1009
+ } catch (error) {
1010
+ return handleApiErrorMaterial(error);
1011
+ }
1012
+ },
1013
+
1014
+ async deleteMaterial(
1015
+ environment: Environment,
1016
+ tenant: string,
1017
+ materialId: string
1018
+ ): Promise<ApiResponse<void>> {
1019
+ try {
1020
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1021
+ if (!token) {
1022
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1023
+ }
1024
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1025
+ client.setAuthToken(token);
1026
+ const response = await client.getClient().post<ApiResponse<void>>(
1027
+ '/api/enterprise/sales/material/delete',
1028
+ { materialId: materialId }
1029
+ );
1030
+ return response.data;
1031
+ } catch (error) {
1032
+ return handleApiErrorMaterial(error) as unknown as ApiResponse<void>;
1033
+ }
1034
+ },
1035
+
1036
+ async createSupplier(
1037
+ environment: Environment,
1038
+ tenant: string,
1039
+ data: CreateSupplierRequest
1040
+ ): Promise<SupplierApiResponse> {
1041
+ try {
1042
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1043
+ if (!token) {
1044
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1045
+ }
1046
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1047
+ client.setAuthToken(token);
1048
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/add', data);
1049
+ return response.data;
1050
+ } catch (error) {
1051
+ return handleApiErrorSupplier(error);
1052
+ }
1053
+ },
1054
+
1055
+ async updateSupplier(
1056
+ environment: Environment,
1057
+ tenant: string,
1058
+ data: UpdateSupplierRequest
1059
+ ): Promise<SupplierApiResponse> {
1060
+ try {
1061
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1062
+ if (!token) {
1063
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1064
+ }
1065
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1066
+ client.setAuthToken(token);
1067
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/edit', data);
1068
+ return response.data;
1069
+ } catch (error) {
1070
+ return handleApiErrorSupplier(error);
1071
+ }
1072
+ },
1073
+
1074
+ async deleteSupplier(
1075
+ environment: Environment,
1076
+ tenant: string,
1077
+ supplierId: string
1078
+ ): Promise<SupplierApiResponse> {
1079
+ try {
1080
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1081
+ if (!token) {
1082
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1083
+ }
1084
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1085
+ client.setAuthToken(token);
1086
+ const response = await client.getClient().post<SupplierApiResponse>(
1087
+ '/api/enterprise/purchases/supplier/delete',
1088
+ { supplierId }
1089
+ );
1090
+ return response.data;
1091
+ } catch (error) {
1092
+ return handleApiErrorSupplier(error);
1093
+ }
1094
+ },
1095
+
1096
+ async enableSupplier(
1097
+ environment: Environment,
1098
+ tenant: string,
1099
+ supplierId: string
1100
+ ): Promise<SupplierApiResponse> {
1101
+ try {
1102
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1103
+ if (!token) {
1104
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1105
+ }
1106
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1107
+ client.setAuthToken(token);
1108
+ const response = await client.getClient().post<SupplierApiResponse>(
1109
+ '/api/enterprise/purchases/supplier/batchActive',
1110
+ { supplierIdList: [supplierId] }
1111
+ );
1112
+ return response.data;
1113
+ } catch (error) {
1114
+ return handleApiErrorSupplier(error);
1115
+ }
1116
+ },
1117
+
1118
+ async disableSupplier(
1119
+ environment: Environment,
1120
+ tenant: string,
1121
+ supplierId: string
1122
+ ): Promise<SupplierApiResponse> {
1123
+ try {
1124
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1125
+ if (!token) {
1126
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1127
+ }
1128
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1129
+ client.setAuthToken(token);
1130
+ const response = await client.getClient().post<SupplierApiResponse>(
1131
+ '/api/enterprise/purchases/supplier/batchDeActive',
1132
+ { supplierIdList: [supplierId] }
1133
+ );
1134
+ return response.data;
1135
+ } catch (error) {
1136
+ return handleApiErrorSupplier(error);
1137
+ }
1138
+ },
1139
+
1140
+ async createMaterial(
1141
+ environment: Environment,
1142
+ tenant: string,
1143
+ data: MaterialRequest
1144
+ ): Promise<MaterialApiResponse> {
1145
+ try {
1146
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1147
+ if (!token) {
1148
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1149
+ }
1150
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1151
+ client.setAuthToken(token);
1152
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1153
+ return response.data;
1154
+ } catch (error) {
1155
+ return handleApiErrorMaterial(error);
1156
+ }
1157
+ },
1158
+
1159
+ async updateMaterial(
1160
+ environment: Environment,
1161
+ tenant: string,
1162
+ materialId: string,
1163
+ data: MaterialRequest
1164
+ ): Promise<MaterialApiResponse> {
1165
+ try {
1166
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1167
+ if (!token) {
1168
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1169
+ }
1170
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1171
+ client.setAuthToken(token);
1172
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1173
+ return response.data;
1174
+ } catch (error) {
1175
+ return handleApiErrorMaterial(error);
1176
+ }
1177
+ },
1178
+
1179
+ async disableMaterial(
1180
+ environment: Environment,
1181
+ tenant: string,
1182
+ materialId: string
1183
+ ): Promise<MaterialApiResponse> {
1184
+ try {
1185
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1186
+ if (!token) {
1187
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1188
+ }
1189
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1190
+ client.setAuthToken(token);
1191
+ const response = await client.getClient().post<MaterialApiResponse>(
1192
+ '/api/enterprise/sales/material/batchDeActive',
1193
+ { materialIdList: [materialId] }
1194
+ );
1195
+ return response.data;
1196
+ } catch (error) {
1197
+ return handleApiErrorMaterial(error);
1198
+ }
1199
+ },
1200
+
1201
+ async enableMaterial(
1202
+ environment: Environment,
1203
+ tenant: string,
1204
+ materialId: string
1205
+ ): Promise<MaterialApiResponse> {
1206
+ try {
1207
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1208
+ if (!token) {
1209
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1210
+ }
1211
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1212
+ client.setAuthToken(token);
1213
+ const response = await client.getClient().post<MaterialApiResponse>(
1214
+ '/api/enterprise/sales/material/batchActive',
1215
+ { materialIdList: [materialId] }
1216
+ );
1217
+ return response.data;
1218
+ } catch (error) {
1219
+ return handleApiErrorMaterial(error);
1220
+ }
1221
+ },
1222
+
1223
+ async listUoms(
1224
+ environment: Environment,
1225
+ tenant: string,
1226
+ params: UomQueryParams
1227
+ ): Promise<UomApiResponse> {
1228
+ try {
1229
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1230
+ if (!token) {
1231
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1232
+ }
1233
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1234
+ client.setAuthToken(token);
1235
+ const queryString = new URLSearchParams();
1236
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1237
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1238
+ if (params.status) queryString.append('status', params.status.toString());
1239
+ if (params.uomCode) queryString.append('uomCode', params.uomCode);
1240
+ if (params.uomName) queryString.append('uomName', params.uomName);
1241
+ const url = `/api/enterprise/sales/uom/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1242
+ const response = await client.getClient().get<UomApiResponse>(url);
1243
+ return response.data;
1244
+ } catch (error) {
1245
+ return handleApiErrorUom(error);
1246
+ }
1247
+ },
1248
+
1249
+ async getUom(
1250
+ environment: Environment,
1251
+ tenant: string,
1252
+ uomId: string
1253
+ ): Promise<UomApiResponse> {
1254
+ try {
1255
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1256
+ if (!token) {
1257
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1258
+ }
1259
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1260
+ client.setAuthToken(token);
1261
+ const response = await client.getClient().get<UomApiResponse>(
1262
+ `/api/enterprise/sales/uom/detail?uomId=${uomId}`
1263
+ );
1264
+ return response.data;
1265
+ } catch (error) {
1266
+ return handleApiErrorUom(error);
1267
+ }
1268
+ },
1269
+
1270
+ async createUom(
1271
+ environment: Environment,
1272
+ tenant: string,
1273
+ data: CreateUomRequest
1274
+ ): Promise<UomApiResponse> {
1275
+ try {
1276
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1277
+ if (!token) {
1278
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1279
+ }
1280
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1281
+ client.setAuthToken(token);
1282
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/add', data);
1283
+ return response.data;
1284
+ } catch (error) {
1285
+ return handleApiErrorUom(error);
1286
+ }
1287
+ },
1288
+
1289
+ async updateUom(
1290
+ environment: Environment,
1291
+ tenant: string,
1292
+ data: UpdateUomRequest
1293
+ ): Promise<UomApiResponse> {
1294
+ try {
1295
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1296
+ if (!token) {
1297
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1298
+ }
1299
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1300
+ client.setAuthToken(token);
1301
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/edit', data);
1302
+ return response.data;
1303
+ } catch (error) {
1304
+ return handleApiErrorUom(error);
1305
+ }
1306
+ },
1307
+
1308
+ async deleteUom(
1309
+ environment: Environment,
1310
+ tenant: string,
1311
+ uomId: string
1312
+ ): Promise<UomApiResponse> {
1313
+ try {
1314
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1315
+ if (!token) {
1316
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1317
+ }
1318
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1319
+ client.setAuthToken(token);
1320
+ const response = await client.getClient().post<UomApiResponse>(
1321
+ '/api/enterprise/sales/uom/delete',
1322
+ { uomId }
1323
+ );
1324
+ return response.data;
1325
+ } catch (error) {
1326
+ return handleApiErrorUom(error);
1327
+ }
1328
+ },
1329
+
1330
+ async enableUom(
1331
+ environment: Environment,
1332
+ tenant: string,
1333
+ uomId: string
1334
+ ): Promise<UomApiResponse> {
1335
+ try {
1336
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1337
+ if (!token) {
1338
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1339
+ }
1340
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1341
+ client.setAuthToken(token);
1342
+ const response = await client.getClient().post<UomApiResponse>(
1343
+ '/api/enterprise/sales/uom/batchActive',
1344
+ { uomIdList: [uomId] }
1345
+ );
1346
+ return response.data;
1347
+ } catch (error) {
1348
+ return handleApiErrorUom(error);
1349
+ }
1350
+ },
1351
+
1352
+ async disableUom(
1353
+ environment: Environment,
1354
+ tenant: string,
1355
+ uomId: string
1356
+ ): Promise<UomApiResponse> {
1357
+ try {
1358
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1359
+ if (!token) {
1360
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1361
+ }
1362
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1363
+ client.setAuthToken(token);
1364
+ const response = await client.getClient().post<UomApiResponse>(
1365
+ '/api/enterprise/sales/uom/batchDeActive',
1366
+ { uomIdList: [uomId] }
1367
+ );
1368
+ return response.data;
1369
+ } catch (error) {
1370
+ return handleApiErrorUom(error);
1371
+ }
1372
+ },
1373
+
1374
+ async listCurrencies(
1375
+ environment: Environment,
1376
+ tenant: string,
1377
+ params: CurrencyQueryParams
1378
+ ): Promise<CurrencyApiResponse> {
1379
+ try {
1380
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1381
+ if (!token) {
1382
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1383
+ }
1384
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1385
+ client.setAuthToken(token);
1386
+ const queryString = new URLSearchParams();
1387
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1388
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1389
+ if (params.status) queryString.append('status', params.status.toString());
1390
+ if (params.currencyCode) queryString.append('currencyCode', params.currencyCode);
1391
+ if (params.currencyName) queryString.append('currencyName', params.currencyName);
1392
+ const url = `/api/enterprise/sales/currency/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1393
+ const response = await client.getClient().get<CurrencyApiResponse>(url);
1394
+ return response.data;
1395
+ } catch (error) {
1396
+ return handleApiErrorCurrency(error);
1397
+ }
1398
+ },
1399
+
1400
+ async getCurrency(
1401
+ environment: Environment,
1402
+ tenant: string,
1403
+ currencyId: string
1404
+ ): Promise<CurrencyApiResponse> {
1405
+ try {
1406
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1407
+ if (!token) {
1408
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1409
+ }
1410
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1411
+ client.setAuthToken(token);
1412
+ const response = await client.getClient().get<CurrencyApiResponse>(
1413
+ `/api/enterprise/sales/currency/detail?currencyId=${currencyId}`
1414
+ );
1415
+ return response.data;
1416
+ } catch (error) {
1417
+ return handleApiErrorCurrency(error);
1418
+ }
1419
+ },
1420
+
1421
+ async getAvailableCurrencies(
1422
+ environment: Environment,
1423
+ tenant: string
1424
+ ): Promise<CurrencyApiResponse> {
1425
+ try {
1426
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1427
+ if (!token) {
1428
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1429
+ }
1430
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1431
+ client.setAuthToken(token);
1432
+ const response = await client.getClient().get<CurrencyApiResponse>('/api/enterprise/master/currency/available/list');
1433
+ return response.data;
1434
+ } catch (error) {
1435
+ return handleApiErrorCurrency(error);
1436
+ }
1437
+ },
1438
+
1439
+ async getCurrencyDefault(
1440
+ environment: Environment,
1441
+ tenant: string,
1442
+ currencyCode: string
1443
+ ): Promise<CurrencyDefaultResponse> {
1444
+ try {
1445
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1446
+ if (!token) {
1447
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1448
+ }
1449
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1450
+ client.setAuthToken(token);
1451
+ const response = await client.getClient().get<CurrencyDefaultResponse>(
1452
+ `/api/enterprise/master/currency/currency/default?currencyCode=${currencyCode}`
1453
+ );
1454
+ return response.data;
1455
+ } catch (error) {
1456
+ return handleApiErrorCurrency(error) as CurrencyDefaultResponse;
1457
+ }
1458
+ },
1459
+
1460
+ async createCurrency(
1461
+ environment: Environment,
1462
+ tenant: string,
1463
+ data: CreateCurrencyRequest
1464
+ ): Promise<CurrencyApiResponse> {
1465
+ try {
1466
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1467
+ if (!token) {
1468
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1469
+ }
1470
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1471
+ client.setAuthToken(token);
1472
+ const response = await client.getClient().post<CurrencyApiResponse>('/api/enterprise/sales/currency/add', data);
1473
+ return response.data;
1474
+ } catch (error) {
1475
+ return handleApiErrorCurrency(error);
1476
+ }
1477
+ },
1478
+
1479
+ async updateCurrency(
1480
+ environment: Environment,
1481
+ tenant: string,
1482
+ data: UpdateCurrencyRequest
1483
+ ): Promise<CurrencyApiResponse> {
1484
+ try {
1485
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1486
+ if (!token) {
1487
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1488
+ }
1489
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1490
+ client.setAuthToken(token);
1491
+ const response = await client.getClient().post<CurrencyApiResponse>('/api/enterprise/sales/currency/edit', data);
1492
+ return response.data;
1493
+ } catch (error) {
1494
+ return handleApiErrorCurrency(error);
1495
+ }
1496
+ },
1497
+
1498
+ async deleteCurrency(
1499
+ environment: Environment,
1500
+ tenant: string,
1501
+ currencyId: string
1502
+ ): Promise<CurrencyApiResponse> {
1503
+ try {
1504
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1505
+ if (!token) {
1506
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1507
+ }
1508
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1509
+ client.setAuthToken(token);
1510
+ const response = await client.getClient().post<CurrencyApiResponse>(
1511
+ '/api/enterprise/sales/currency/delete',
1512
+ { currencyId }
1513
+ );
1514
+ return response.data;
1515
+ } catch (error) {
1516
+ return handleApiErrorCurrency(error);
1517
+ }
1518
+ },
1519
+
1520
+ async enableCurrencies(
1521
+ environment: Environment,
1522
+ tenant: string,
1523
+ currencyIds: string[]
1524
+ ): Promise<CurrencyApiResponse> {
1525
+ try {
1526
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1527
+ if (!token) {
1528
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1529
+ }
1530
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1531
+ client.setAuthToken(token);
1532
+ const response = await client.getClient().post<CurrencyApiResponse>(
1533
+ '/api/enterprise/sales/currency/batchActive',
1534
+ { currencyIdList: currencyIds }
1535
+ );
1536
+ return response.data;
1537
+ } catch (error) {
1538
+ return handleApiErrorCurrency(error);
1539
+ }
1540
+ },
1541
+
1542
+ async disableCurrencies(
1543
+ environment: Environment,
1544
+ tenant: string,
1545
+ currencyIds: string[]
1546
+ ): Promise<CurrencyApiResponse> {
1547
+ try {
1548
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1549
+ if (!token) {
1550
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1551
+ }
1552
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1553
+ client.setAuthToken(token);
1554
+ const response = await client.getClient().post<CurrencyApiResponse>(
1555
+ '/api/enterprise/sales/currency/batchDeActive',
1556
+ { currencyIdList: currencyIds }
1557
+ );
1558
+ return response.data;
1559
+ } catch (error) {
1560
+ return handleApiErrorCurrency(error);
1561
+ }
1562
+ },
1563
+
1564
+ };
1565
+
1566
+ function handleApiError(error: unknown): EmployeeApiResponse {
1567
+ if (axios.isAxiosError(error)) {
1568
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1569
+ const responseData = axiosError.response?.data;
1570
+ if (responseData) {
1571
+ const success = responseData.success as boolean | undefined;
1572
+ if (success === false) {
1573
+ const code = responseData.code as string | undefined;
1574
+ const message = responseData.message as string | undefined;
1575
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1576
+ if (!errorObj && (code || message)) {
1577
+ return {
1578
+ success: false,
1579
+ error: {
1580
+ code: code || 'API_ERROR',
1581
+ message: message || 'API error occurred',
1582
+ },
1583
+ };
1584
+ }
1585
+ }
1586
+ return responseData as unknown as EmployeeApiResponse;
1587
+ }
1588
+ return {
1589
+ success: false,
1590
+ error: {
1591
+ code: 'NETWORK_ERROR',
1592
+ message: axiosError.message || 'Network error occurred',
1593
+ },
1594
+ };
1595
+ }
1596
+ return {
1597
+ success: false,
1598
+ error: {
1599
+ code: 'UNKNOWN_ERROR',
1600
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1601
+ },
1602
+ };
1603
+ }
1604
+
1605
+ function handleApiErrorClient(error: unknown): ClientApiResponse {
1606
+ if (axios.isAxiosError(error)) {
1607
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1608
+ const responseData = axiosError.response?.data;
1609
+ if (responseData) {
1610
+ const success = responseData.success as boolean | undefined;
1611
+ if (success === false) {
1612
+ const code = responseData.code as string | undefined;
1613
+ const message = responseData.message as string | undefined;
1614
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1615
+ if (!errorObj && (code || message)) {
1616
+ return {
1617
+ success: false,
1618
+ error: {
1619
+ code: code || 'API_ERROR',
1620
+ message: message || 'API error occurred',
1621
+ },
1622
+ };
1623
+ }
1624
+ }
1625
+ return responseData as unknown as ClientApiResponse;
1626
+ }
1627
+ return {
1628
+ success: false,
1629
+ error: {
1630
+ code: 'NETWORK_ERROR',
1631
+ message: axiosError.message || 'Network error occurred',
1632
+ },
1633
+ };
1634
+ }
1635
+ return {
1636
+ success: false,
1637
+ error: {
1638
+ code: 'UNKNOWN_ERROR',
1639
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1640
+ },
1641
+ };
1642
+ }
1643
+
1644
+ function handleApiErrorSupplier(error: unknown): SupplierApiResponse {
1645
+ if (axios.isAxiosError(error)) {
1646
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1647
+ const responseData = axiosError.response?.data;
1648
+ if (responseData) {
1649
+ const success = responseData.success as boolean | undefined;
1650
+ if (success === false) {
1651
+ const code = responseData.code as string | undefined;
1652
+ const message = responseData.message as string | undefined;
1653
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1654
+ if (!errorObj && (code || message)) {
1655
+ return {
1656
+ success: false,
1657
+ error: {
1658
+ code: code || 'API_ERROR',
1659
+ message: message || 'API error occurred',
1660
+ },
1661
+ };
1662
+ }
1663
+ }
1664
+ return responseData as unknown as SupplierApiResponse;
1665
+ }
1666
+ return {
1667
+ success: false,
1668
+ error: {
1669
+ code: 'NETWORK_ERROR',
1670
+ message: axiosError.message || 'Network error occurred',
1671
+ },
1672
+ };
1673
+ }
1674
+ return {
1675
+ success: false,
1676
+ error: {
1677
+ code: 'UNKNOWN_ERROR',
1678
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1679
+ },
1680
+ };
1681
+ }
1682
+
1683
+ function handleApiErrorMaterial(error: unknown): MaterialApiResponse {
1684
+ if (axios.isAxiosError(error)) {
1685
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1686
+ const responseData = axiosError.response?.data;
1687
+ if (responseData) {
1688
+ const success = responseData.success as boolean | undefined;
1689
+ if (success === false) {
1690
+ const code = responseData.code as string | undefined;
1691
+ const message = responseData.message as string | undefined;
1692
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1693
+ if (!errorObj && (code || message)) {
1694
+ return {
1695
+ success: false,
1696
+ error: {
1697
+ code: code || 'API_ERROR',
1698
+ message: message || 'API error occurred',
1699
+ },
1700
+ };
1701
+ }
1702
+ }
1703
+ return responseData as unknown as MaterialApiResponse;
1704
+ }
1705
+ return {
1706
+ success: false,
1707
+ error: {
1708
+ code: 'NETWORK_ERROR',
1709
+ message: axiosError.message || 'Network error occurred',
1710
+ },
1711
+ };
1712
+ }
1713
+ return {
1714
+ success: false,
1715
+ error: {
1716
+ code: 'UNKNOWN_ERROR',
1717
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1718
+ },
1719
+ };
1720
+ }
1721
+
1722
+ function handleApiErrorUom(error: unknown): UomApiResponse {
1723
+ if (axios.isAxiosError(error)) {
1724
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1725
+ const responseData = axiosError.response?.data;
1726
+ if (responseData) {
1727
+ const success = responseData.success as boolean | undefined;
1728
+ if (success === false) {
1729
+ const code = responseData.code as string | undefined;
1730
+ const message = responseData.message as string | undefined;
1731
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1732
+ if (!errorObj && (code || message)) {
1733
+ return {
1734
+ success: false,
1735
+ error: {
1736
+ code: code || 'API_ERROR',
1737
+ message: message || 'API error occurred',
1738
+ },
1739
+ };
1740
+ }
1741
+ }
1742
+ return responseData as unknown as UomApiResponse;
1743
+ }
1744
+ return {
1745
+ success: false,
1746
+ error: {
1747
+ code: 'NETWORK_ERROR',
1748
+ message: axiosError.message || 'Network error occurred',
1749
+ },
1750
+ };
1751
+ }
1752
+ return {
1753
+ success: false,
1754
+ error: {
1755
+ code: 'UNKNOWN_ERROR',
1756
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1757
+ },
1758
+ };
1759
+ }
1760
+
1761
+ function handleApiErrorCurrency(error: unknown): CurrencyApiResponse {
1762
+ if (axios.isAxiosError(error)) {
1763
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1764
+ const responseData = axiosError.response?.data;
1765
+ if (responseData) {
1766
+ const success = responseData.success as boolean | undefined;
1767
+ if (success === false) {
1768
+ const code = responseData.code as string | undefined;
1769
+ const message = responseData.message as string | undefined;
1770
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1771
+ if (!errorObj && (code || message)) {
1772
+ return {
1773
+ success: false,
1774
+ error: {
1775
+ code: code || 'API_ERROR',
1776
+ message: message || 'API error occurred',
1777
+ },
1778
+ };
1779
+ }
1780
+ }
1781
+ return responseData as unknown as CurrencyApiResponse;
961
1782
  }
962
1783
  return {
963
1784
  success: false,