@newpeak/barista-cli 0.1.3 → 0.1.5

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 (205) 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/clients/create.d.ts +3 -0
  5. package/dist/commands/liberica/clients/create.d.ts.map +1 -0
  6. package/dist/commands/liberica/clients/create.js +125 -0
  7. package/dist/commands/liberica/clients/create.js.map +1 -0
  8. package/dist/commands/liberica/clients/delete.d.ts +3 -0
  9. package/dist/commands/liberica/clients/delete.d.ts.map +1 -0
  10. package/dist/commands/liberica/clients/delete.js +125 -0
  11. package/dist/commands/liberica/clients/delete.js.map +1 -0
  12. package/dist/commands/liberica/clients/get.d.ts +3 -0
  13. package/dist/commands/liberica/clients/get.d.ts.map +1 -0
  14. package/dist/commands/liberica/clients/get.js +77 -0
  15. package/dist/commands/liberica/clients/get.js.map +1 -0
  16. package/dist/commands/liberica/clients/index.d.ts +3 -0
  17. package/dist/commands/liberica/clients/index.d.ts.map +1 -0
  18. package/dist/commands/liberica/clients/index.js +17 -0
  19. package/dist/commands/liberica/clients/index.js.map +1 -0
  20. package/dist/commands/liberica/clients/list.d.ts +3 -0
  21. package/dist/commands/liberica/clients/list.d.ts.map +1 -0
  22. package/dist/commands/liberica/clients/list.js +92 -0
  23. package/dist/commands/liberica/clients/list.js.map +1 -0
  24. package/dist/commands/liberica/clients/update.d.ts +3 -0
  25. package/dist/commands/liberica/clients/update.d.ts.map +1 -0
  26. package/dist/commands/liberica/clients/update.js +106 -0
  27. package/dist/commands/liberica/clients/update.js.map +1 -0
  28. package/dist/commands/liberica/index.d.ts.map +1 -1
  29. package/dist/commands/liberica/index.js +11 -0
  30. package/dist/commands/liberica/index.js.map +1 -1
  31. package/dist/commands/liberica/materials/create.d.ts +3 -0
  32. package/dist/commands/liberica/materials/create.d.ts.map +1 -0
  33. package/dist/commands/liberica/materials/create.js +154 -0
  34. package/dist/commands/liberica/materials/create.js.map +1 -0
  35. package/dist/commands/liberica/materials/delete.d.ts +3 -0
  36. package/dist/commands/liberica/materials/delete.d.ts.map +1 -0
  37. package/dist/commands/liberica/materials/delete.js +104 -0
  38. package/dist/commands/liberica/materials/delete.js.map +1 -0
  39. package/dist/commands/liberica/materials/disable.d.ts +3 -0
  40. package/dist/commands/liberica/materials/disable.d.ts.map +1 -0
  41. package/dist/commands/liberica/materials/disable.js +146 -0
  42. package/dist/commands/liberica/materials/disable.js.map +1 -0
  43. package/dist/commands/liberica/materials/enable.d.ts +3 -0
  44. package/dist/commands/liberica/materials/enable.d.ts.map +1 -0
  45. package/dist/commands/liberica/materials/enable.js +126 -0
  46. package/dist/commands/liberica/materials/enable.js.map +1 -0
  47. package/dist/commands/liberica/materials/get.d.ts +3 -0
  48. package/dist/commands/liberica/materials/get.d.ts.map +1 -0
  49. package/dist/commands/liberica/materials/get.js +71 -0
  50. package/dist/commands/liberica/materials/get.js.map +1 -0
  51. package/dist/commands/liberica/materials/index.d.ts +3 -0
  52. package/dist/commands/liberica/materials/index.d.ts.map +1 -0
  53. package/dist/commands/liberica/materials/index.js +21 -0
  54. package/dist/commands/liberica/materials/index.js.map +1 -0
  55. package/dist/commands/liberica/materials/list.d.ts +3 -0
  56. package/dist/commands/liberica/materials/list.d.ts.map +1 -0
  57. package/dist/commands/liberica/materials/list.js +107 -0
  58. package/dist/commands/liberica/materials/list.js.map +1 -0
  59. package/dist/commands/liberica/materials/update.d.ts +3 -0
  60. package/dist/commands/liberica/materials/update.d.ts.map +1 -0
  61. package/dist/commands/liberica/materials/update.js +118 -0
  62. package/dist/commands/liberica/materials/update.js.map +1 -0
  63. package/dist/commands/liberica/suppliers/create.d.ts +3 -0
  64. package/dist/commands/liberica/suppliers/create.d.ts.map +1 -0
  65. package/dist/commands/liberica/suppliers/create.js +140 -0
  66. package/dist/commands/liberica/suppliers/create.js.map +1 -0
  67. package/dist/commands/liberica/suppliers/delete.d.ts +3 -0
  68. package/dist/commands/liberica/suppliers/delete.d.ts.map +1 -0
  69. package/dist/commands/liberica/suppliers/delete.js +102 -0
  70. package/dist/commands/liberica/suppliers/delete.js.map +1 -0
  71. package/dist/commands/liberica/suppliers/disable.d.ts +3 -0
  72. package/dist/commands/liberica/suppliers/disable.d.ts.map +1 -0
  73. package/dist/commands/liberica/suppliers/disable.js +144 -0
  74. package/dist/commands/liberica/suppliers/disable.js.map +1 -0
  75. package/dist/commands/liberica/suppliers/enable.d.ts +3 -0
  76. package/dist/commands/liberica/suppliers/enable.d.ts.map +1 -0
  77. package/dist/commands/liberica/suppliers/enable.js +124 -0
  78. package/dist/commands/liberica/suppliers/enable.js.map +1 -0
  79. package/dist/commands/liberica/suppliers/get.d.ts +3 -0
  80. package/dist/commands/liberica/suppliers/get.d.ts.map +1 -0
  81. package/dist/commands/liberica/suppliers/get.js +75 -0
  82. package/dist/commands/liberica/suppliers/get.js.map +1 -0
  83. package/dist/commands/liberica/suppliers/index.d.ts +3 -0
  84. package/dist/commands/liberica/suppliers/index.d.ts.map +1 -0
  85. package/dist/commands/liberica/suppliers/index.js +21 -0
  86. package/dist/commands/liberica/suppliers/index.js.map +1 -0
  87. package/dist/commands/liberica/suppliers/list.d.ts +3 -0
  88. package/dist/commands/liberica/suppliers/list.d.ts.map +1 -0
  89. package/dist/commands/liberica/suppliers/list.js +100 -0
  90. package/dist/commands/liberica/suppliers/list.js.map +1 -0
  91. package/dist/commands/liberica/suppliers/update.d.ts +3 -0
  92. package/dist/commands/liberica/suppliers/update.d.ts.map +1 -0
  93. package/dist/commands/liberica/suppliers/update.js +122 -0
  94. package/dist/commands/liberica/suppliers/update.js.map +1 -0
  95. package/dist/commands/liberica/uoms/create.d.ts +3 -0
  96. package/dist/commands/liberica/uoms/create.d.ts.map +1 -0
  97. package/dist/commands/liberica/uoms/create.js +120 -0
  98. package/dist/commands/liberica/uoms/create.js.map +1 -0
  99. package/dist/commands/liberica/uoms/delete.d.ts +3 -0
  100. package/dist/commands/liberica/uoms/delete.d.ts.map +1 -0
  101. package/dist/commands/liberica/uoms/delete.js +104 -0
  102. package/dist/commands/liberica/uoms/delete.js.map +1 -0
  103. package/dist/commands/liberica/uoms/disable.d.ts +3 -0
  104. package/dist/commands/liberica/uoms/disable.d.ts.map +1 -0
  105. package/dist/commands/liberica/uoms/disable.js +146 -0
  106. package/dist/commands/liberica/uoms/disable.js.map +1 -0
  107. package/dist/commands/liberica/uoms/enable.d.ts +3 -0
  108. package/dist/commands/liberica/uoms/enable.d.ts.map +1 -0
  109. package/dist/commands/liberica/uoms/enable.js +126 -0
  110. package/dist/commands/liberica/uoms/enable.js.map +1 -0
  111. package/dist/commands/liberica/uoms/get.d.ts +3 -0
  112. package/dist/commands/liberica/uoms/get.d.ts.map +1 -0
  113. package/dist/commands/liberica/uoms/get.js +71 -0
  114. package/dist/commands/liberica/uoms/get.js.map +1 -0
  115. package/dist/commands/liberica/uoms/index.d.ts +3 -0
  116. package/dist/commands/liberica/uoms/index.d.ts.map +1 -0
  117. package/dist/commands/liberica/uoms/index.js +21 -0
  118. package/dist/commands/liberica/uoms/index.js.map +1 -0
  119. package/dist/commands/liberica/uoms/list.d.ts +3 -0
  120. package/dist/commands/liberica/uoms/list.d.ts.map +1 -0
  121. package/dist/commands/liberica/uoms/list.js +98 -0
  122. package/dist/commands/liberica/uoms/list.js.map +1 -0
  123. package/dist/commands/liberica/uoms/update.d.ts +3 -0
  124. package/dist/commands/liberica/uoms/update.d.ts.map +1 -0
  125. package/dist/commands/liberica/uoms/update.js +115 -0
  126. package/dist/commands/liberica/uoms/update.js.map +1 -0
  127. package/dist/core/api/client.d.ts +30 -0
  128. package/dist/core/api/client.d.ts.map +1 -1
  129. package/dist/core/api/client.js +590 -0
  130. package/dist/core/api/client.js.map +1 -1
  131. package/dist/index.js +1 -1
  132. package/dist/types/client.d.ts +100 -0
  133. package/dist/types/client.d.ts.map +1 -0
  134. package/dist/types/client.js +2 -0
  135. package/dist/types/client.js.map +1 -0
  136. package/dist/types/index.d.ts +6 -0
  137. package/dist/types/index.d.ts.map +1 -1
  138. package/dist/types/material.d.ts +49 -0
  139. package/dist/types/material.d.ts.map +1 -0
  140. package/dist/types/material.js +2 -0
  141. package/dist/types/material.js.map +1 -0
  142. package/dist/types/supplier.d.ts +53 -0
  143. package/dist/types/supplier.d.ts.map +1 -0
  144. package/dist/types/supplier.js +2 -0
  145. package/dist/types/supplier.js.map +1 -0
  146. package/dist/types/uom.d.ts +47 -0
  147. package/dist/types/uom.d.ts.map +1 -0
  148. package/dist/types/uom.js +2 -0
  149. package/dist/types/uom.js.map +1 -0
  150. package/docs/commands/REFERENCE.md +21 -15
  151. package/docs/commands/liberica/materials-create.md +293 -0
  152. package/docs/commands/liberica/materials-delete.md +240 -0
  153. package/docs/commands/liberica/materials-disable.md +150 -0
  154. package/docs/commands/liberica/materials-enable.md +146 -0
  155. package/docs/commands/liberica/materials-get.md +188 -0
  156. package/docs/commands/liberica/materials-list.md +198 -0
  157. package/docs/commands/liberica/materials-update.md +250 -0
  158. package/docs/commands/liberica/uoms-create.md +136 -0
  159. package/docs/commands/liberica/uoms-delete.md +119 -0
  160. package/docs/commands/liberica/uoms-disable.md +117 -0
  161. package/docs/commands/liberica/uoms-enable.md +115 -0
  162. package/docs/commands/liberica/uoms-get.md +119 -0
  163. package/docs/commands/liberica/uoms-list.md +155 -0
  164. package/docs/commands/liberica/uoms-update.md +148 -0
  165. package/package.json +2 -4
  166. package/src/commands/liberica/auth/index.ts +6 -0
  167. package/src/commands/liberica/clients/create.ts +122 -0
  168. package/src/commands/liberica/clients/delete.ts +125 -0
  169. package/src/commands/liberica/clients/get.ts +88 -0
  170. package/src/commands/liberica/clients/index.ts +19 -0
  171. package/src/commands/liberica/clients/list.ts +123 -0
  172. package/src/commands/liberica/clients/update.ts +103 -0
  173. package/src/commands/liberica/index.ts +11 -0
  174. package/src/commands/liberica/materials/create.ts +168 -0
  175. package/src/commands/liberica/materials/delete.ts +105 -0
  176. package/src/commands/liberica/materials/disable.ts +148 -0
  177. package/src/commands/liberica/materials/enable.ts +129 -0
  178. package/src/commands/liberica/materials/get.ts +83 -0
  179. package/src/commands/liberica/materials/index.ts +23 -0
  180. package/src/commands/liberica/materials/list.ts +142 -0
  181. package/src/commands/liberica/materials/update.ts +125 -0
  182. package/src/commands/liberica/suppliers/create.ts +149 -0
  183. package/src/commands/liberica/suppliers/delete.ts +102 -0
  184. package/src/commands/liberica/suppliers/disable.ts +145 -0
  185. package/src/commands/liberica/suppliers/enable.ts +126 -0
  186. package/src/commands/liberica/suppliers/get.ts +86 -0
  187. package/src/commands/liberica/suppliers/index.ts +23 -0
  188. package/src/commands/liberica/suppliers/list.ts +134 -0
  189. package/src/commands/liberica/suppliers/update.ts +128 -0
  190. package/src/commands/liberica/uoms/create.ts +134 -0
  191. package/src/commands/liberica/uoms/delete.ts +105 -0
  192. package/src/commands/liberica/uoms/disable.ts +148 -0
  193. package/src/commands/liberica/uoms/enable.ts +129 -0
  194. package/src/commands/liberica/uoms/get.ts +83 -0
  195. package/src/commands/liberica/uoms/index.ts +23 -0
  196. package/src/commands/liberica/uoms/list.ts +129 -0
  197. package/src/commands/liberica/uoms/update.ts +124 -0
  198. package/src/core/api/client.ts +758 -21
  199. package/src/index.ts +1 -1
  200. package/src/types/client.ts +115 -0
  201. package/src/types/index.ts +6 -0
  202. package/src/types/material.ts +61 -0
  203. package/src/types/supplier.ts +66 -0
  204. package/src/types/uom.ts +60 -0
  205. package/bin/barista.js +0 -3
@@ -14,8 +14,28 @@ import {
14
14
  UserQueryParams,
15
15
  UserApiResponse,
16
16
  } from '../../types/user.js';
17
+ import {
18
+ CreateClientRequest,
19
+ UpdateClientRequest,
20
+ ClientQueryParams,
21
+ ClientApiResponse,
22
+ } from '../../types/client.js';
23
+ import {
24
+ CreateSupplierRequest,
25
+ UpdateSupplierRequest,
26
+ SupplierQueryParams,
27
+ SupplierApiResponse,
28
+ } from '../../types/supplier.js';
17
29
  import { OrgListItem } from '../../types/org.js';
18
30
  import { PositionListItem } from '../../types/position.js';
31
+ import {
32
+ CreateUomRequest,
33
+ UpdateUomRequest,
34
+ UomQueryParams,
35
+ UomApiResponse,
36
+ } from '../../types/uom.js';
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ import { ApiResponse, Material, MaterialApiResponse, MaterialQueryParams, MaterialRequest } from '../../types/material.js';
19
39
 
20
40
  export interface LoginResponse {
21
41
  token: string;
@@ -783,29 +803,746 @@ export const apiClient = {
783
803
  }
784
804
  },
785
805
 
786
- };
806
+ async listClients(
807
+ environment: Environment,
808
+ tenant: string,
809
+ params: ClientQueryParams
810
+ ): Promise<ClientApiResponse> {
811
+ try {
812
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
813
+ if (!token) {
814
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
815
+ }
816
+ const client = createAPIClient('liberica' as Service, environment, tenant);
817
+ client.setAuthToken(token);
818
+ const queryString = new URLSearchParams();
819
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
820
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
821
+ if (params.status) queryString.append('status', params.status.toString());
822
+ if (params.clientCode) queryString.append('clientCode', params.clientCode);
823
+ if (params.clientName) queryString.append('clientName', params.clientName);
824
+ const url = `/api/enterprise/sales/client/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
825
+ const response = await client.getClient().get<ClientApiResponse>(url);
826
+ return response.data;
827
+ } catch (error) {
828
+ return handleApiErrorClient(error);
829
+ }
830
+ },
787
831
 
788
- function handleApiError(error: unknown): EmployeeApiResponse {
789
- if (axios.isAxiosError(error)) {
790
- const axiosError = error as AxiosError<Record<string, unknown>>;
791
- const responseData = axiosError.response?.data;
792
- if (responseData) {
793
- const success = responseData.success as boolean | undefined;
794
- if (success === false) {
795
- const code = responseData.code as string | undefined;
796
- const message = responseData.message as string | undefined;
797
- const errorObj = responseData.error as { code?: string; message?: string } | undefined;
798
- if (!errorObj && (code || message)) {
799
- return {
800
- success: false,
801
- error: {
802
- code: code || 'API_ERROR',
803
- message: message || 'API error occurred',
804
- },
805
- };
806
- }
832
+ async getClient(
833
+ environment: Environment,
834
+ tenant: string,
835
+ clientId: string
836
+ ): Promise<ClientApiResponse> {
837
+ try {
838
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
839
+ if (!token) {
840
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
807
841
  }
808
- return responseData as unknown as EmployeeApiResponse;
842
+ const client = createAPIClient('liberica' as Service, environment, tenant);
843
+ client.setAuthToken(token);
844
+ const response = await client.getClient().get<ClientApiResponse>(
845
+ `/api/enterprise/sales/client/detail?clientId=${clientId}`
846
+ );
847
+ return response.data;
848
+ } catch (error) {
849
+ return handleApiErrorClient(error);
850
+ }
851
+ },
852
+
853
+ async createClient(
854
+ environment: Environment,
855
+ tenant: string,
856
+ data: CreateClientRequest
857
+ ): Promise<ClientApiResponse> {
858
+ try {
859
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
860
+ if (!token) {
861
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
862
+ }
863
+ const client = createAPIClient('liberica' as Service, environment, tenant);
864
+ client.setAuthToken(token);
865
+ const response = await client.getClient().post<ClientApiResponse>('/api/enterprise/sales/client/add', data);
866
+ return response.data;
867
+ } catch (error) {
868
+ return handleApiErrorClient(error);
869
+ }
870
+ },
871
+
872
+ async updateClient(
873
+ environment: Environment,
874
+ tenant: string,
875
+ data: UpdateClientRequest
876
+ ): Promise<ClientApiResponse> {
877
+ try {
878
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
879
+ if (!token) {
880
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
881
+ }
882
+ const client = createAPIClient('liberica' as Service, environment, tenant);
883
+ client.setAuthToken(token);
884
+ const response = await client.getClient().post<ClientApiResponse>('/api/enterprise/sales/client/edit', data);
885
+ return response.data;
886
+ } catch (error) {
887
+ return handleApiErrorClient(error);
888
+ }
889
+ },
890
+
891
+ async deleteClient(
892
+ environment: Environment,
893
+ tenant: string,
894
+ clientId: string
895
+ ): Promise<ClientApiResponse> {
896
+ try {
897
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
898
+ if (!token) {
899
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
900
+ }
901
+ const client = createAPIClient('liberica' as Service, environment, tenant);
902
+ client.setAuthToken(token);
903
+ const response = await client.getClient().post<ClientApiResponse>(
904
+ '/api/enterprise/sales/client/delete',
905
+ { clientId }
906
+ );
907
+ return response.data;
908
+ } catch (error) {
909
+ return handleApiErrorClient(error);
910
+ }
911
+ },
912
+
913
+ async listSuppliers(
914
+ environment: Environment,
915
+ tenant: string,
916
+ params: SupplierQueryParams
917
+ ): Promise<SupplierApiResponse> {
918
+ try {
919
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
920
+ if (!token) {
921
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
922
+ }
923
+ const client = createAPIClient('liberica' as Service, environment, tenant);
924
+ client.setAuthToken(token);
925
+ const queryString = new URLSearchParams();
926
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
927
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
928
+ if (params.status) queryString.append('status', params.status.toString());
929
+ if (params.supplierCode) queryString.append('supplierCode', params.supplierCode);
930
+ if (params.supplierName) queryString.append('supplierName', params.supplierName);
931
+ const url = `/api/enterprise/purchases/supplier/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
932
+ const response = await client.getClient().get<SupplierApiResponse>(url);
933
+ return response.data;
934
+ } catch (error) {
935
+ return handleApiErrorSupplier(error);
936
+ }
937
+ },
938
+
939
+ async getSupplier(
940
+ environment: Environment,
941
+ tenant: string,
942
+ supplierId: string
943
+ ): Promise<SupplierApiResponse> {
944
+ try {
945
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
946
+ if (!token) {
947
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
948
+ }
949
+ const client = createAPIClient('liberica' as Service, environment, tenant);
950
+ client.setAuthToken(token);
951
+ const response = await client.getClient().get<SupplierApiResponse>(
952
+ `/api/enterprise/purchases/supplier/detail?supplierId=${supplierId}`
953
+ );
954
+ return response.data;
955
+ } catch (error) {
956
+ return handleApiErrorSupplier(error);
957
+ }
958
+ },
959
+
960
+ async getMaterial(
961
+ environment: Environment,
962
+ tenant: string,
963
+ materialId: string
964
+ ): Promise<MaterialApiResponse> {
965
+ try {
966
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
967
+ if (!token) {
968
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
969
+ }
970
+ const client = createAPIClient('liberica' as Service, environment, tenant);
971
+ client.setAuthToken(token);
972
+ const response = await client.getClient().get<MaterialApiResponse>(
973
+ `/api/enterprise/sales/material/detail?materialId=${materialId}`
974
+ );
975
+ return response.data;
976
+ } catch (error) {
977
+ return handleApiErrorMaterial(error);
978
+ }
979
+ },
980
+
981
+ async listMaterials(
982
+ environment: Environment,
983
+ tenant: string,
984
+ params: MaterialQueryParams
985
+ ): Promise<MaterialApiResponse> {
986
+ try {
987
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
988
+ if (!token) {
989
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
990
+ }
991
+ const client = createAPIClient('liberica' as Service, environment, tenant);
992
+ client.setAuthToken(token);
993
+ const queryString = new URLSearchParams();
994
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
995
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
996
+ if (params.statusFlag) queryString.append('statusFlag', params.statusFlag.toString());
997
+ if (params.materialClass) queryString.append('materialClass', params.materialClass);
998
+ if (params.keyword) queryString.append('keyword', params.keyword);
999
+ const url = `/api/enterprise/sales/material/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1000
+ const response = await client.getClient().get<MaterialApiResponse>(url);
1001
+ return response.data;
1002
+ } catch (error) {
1003
+ return handleApiErrorMaterial(error);
1004
+ }
1005
+ },
1006
+
1007
+ async deleteMaterial(
1008
+ environment: Environment,
1009
+ tenant: string,
1010
+ materialId: string
1011
+ ): Promise<ApiResponse<void>> {
1012
+ try {
1013
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1014
+ if (!token) {
1015
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1016
+ }
1017
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1018
+ client.setAuthToken(token);
1019
+ const response = await client.getClient().post<ApiResponse<void>>(
1020
+ '/api/enterprise/sales/material/delete',
1021
+ { materialId: materialId }
1022
+ );
1023
+ return response.data;
1024
+ } catch (error) {
1025
+ return handleApiErrorMaterial(error) as unknown as ApiResponse<void>;
1026
+ }
1027
+ },
1028
+
1029
+ async createSupplier(
1030
+ environment: Environment,
1031
+ tenant: string,
1032
+ data: CreateSupplierRequest
1033
+ ): Promise<SupplierApiResponse> {
1034
+ try {
1035
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1036
+ if (!token) {
1037
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1038
+ }
1039
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1040
+ client.setAuthToken(token);
1041
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/add', data);
1042
+ return response.data;
1043
+ } catch (error) {
1044
+ return handleApiErrorSupplier(error);
1045
+ }
1046
+ },
1047
+
1048
+ async updateSupplier(
1049
+ environment: Environment,
1050
+ tenant: string,
1051
+ data: UpdateSupplierRequest
1052
+ ): Promise<SupplierApiResponse> {
1053
+ try {
1054
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1055
+ if (!token) {
1056
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1057
+ }
1058
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1059
+ client.setAuthToken(token);
1060
+ const response = await client.getClient().post<SupplierApiResponse>('/api/enterprise/purchases/supplier/edit', data);
1061
+ return response.data;
1062
+ } catch (error) {
1063
+ return handleApiErrorSupplier(error);
1064
+ }
1065
+ },
1066
+
1067
+ async deleteSupplier(
1068
+ environment: Environment,
1069
+ tenant: string,
1070
+ supplierId: string
1071
+ ): Promise<SupplierApiResponse> {
1072
+ try {
1073
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1074
+ if (!token) {
1075
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1076
+ }
1077
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1078
+ client.setAuthToken(token);
1079
+ const response = await client.getClient().post<SupplierApiResponse>(
1080
+ '/api/enterprise/purchases/supplier/delete',
1081
+ { supplierId }
1082
+ );
1083
+ return response.data;
1084
+ } catch (error) {
1085
+ return handleApiErrorSupplier(error);
1086
+ }
1087
+ },
1088
+
1089
+ async enableSupplier(
1090
+ environment: Environment,
1091
+ tenant: string,
1092
+ supplierId: string
1093
+ ): Promise<SupplierApiResponse> {
1094
+ try {
1095
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1096
+ if (!token) {
1097
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1098
+ }
1099
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1100
+ client.setAuthToken(token);
1101
+ const response = await client.getClient().post<SupplierApiResponse>(
1102
+ '/api/enterprise/purchases/supplier/batchActive',
1103
+ { supplierIdList: [supplierId] }
1104
+ );
1105
+ return response.data;
1106
+ } catch (error) {
1107
+ return handleApiErrorSupplier(error);
1108
+ }
1109
+ },
1110
+
1111
+ async disableSupplier(
1112
+ environment: Environment,
1113
+ tenant: string,
1114
+ supplierId: string
1115
+ ): Promise<SupplierApiResponse> {
1116
+ try {
1117
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1118
+ if (!token) {
1119
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1120
+ }
1121
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1122
+ client.setAuthToken(token);
1123
+ const response = await client.getClient().post<SupplierApiResponse>(
1124
+ '/api/enterprise/purchases/supplier/batchDeActive',
1125
+ { supplierIdList: [supplierId] }
1126
+ );
1127
+ return response.data;
1128
+ } catch (error) {
1129
+ return handleApiErrorSupplier(error);
1130
+ }
1131
+ },
1132
+
1133
+ async createMaterial(
1134
+ environment: Environment,
1135
+ tenant: string,
1136
+ data: MaterialRequest
1137
+ ): Promise<MaterialApiResponse> {
1138
+ try {
1139
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1140
+ if (!token) {
1141
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1142
+ }
1143
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1144
+ client.setAuthToken(token);
1145
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/add', data);
1146
+ return response.data;
1147
+ } catch (error) {
1148
+ return handleApiErrorMaterial(error);
1149
+ }
1150
+ },
1151
+
1152
+ async updateMaterial(
1153
+ environment: Environment,
1154
+ tenant: string,
1155
+ materialId: string,
1156
+ data: MaterialRequest
1157
+ ): Promise<MaterialApiResponse> {
1158
+ try {
1159
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1160
+ if (!token) {
1161
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1162
+ }
1163
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1164
+ client.setAuthToken(token);
1165
+ const response = await client.getClient().post<MaterialApiResponse>('/api/enterprise/sales/material/edit', { materialId, ...data });
1166
+ return response.data;
1167
+ } catch (error) {
1168
+ return handleApiErrorMaterial(error);
1169
+ }
1170
+ },
1171
+
1172
+ async disableMaterial(
1173
+ environment: Environment,
1174
+ tenant: string,
1175
+ materialId: string
1176
+ ): Promise<MaterialApiResponse> {
1177
+ try {
1178
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1179
+ if (!token) {
1180
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1181
+ }
1182
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1183
+ client.setAuthToken(token);
1184
+ const response = await client.getClient().post<MaterialApiResponse>(
1185
+ '/api/enterprise/sales/material/batchDeActive',
1186
+ { materialIdList: [materialId] }
1187
+ );
1188
+ return response.data;
1189
+ } catch (error) {
1190
+ return handleApiErrorMaterial(error);
1191
+ }
1192
+ },
1193
+
1194
+ async enableMaterial(
1195
+ environment: Environment,
1196
+ tenant: string,
1197
+ materialId: string
1198
+ ): Promise<MaterialApiResponse> {
1199
+ try {
1200
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1201
+ if (!token) {
1202
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1203
+ }
1204
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1205
+ client.setAuthToken(token);
1206
+ const response = await client.getClient().post<MaterialApiResponse>(
1207
+ '/api/enterprise/sales/material/batchActive',
1208
+ { materialIdList: [materialId] }
1209
+ );
1210
+ return response.data;
1211
+ } catch (error) {
1212
+ return handleApiErrorMaterial(error);
1213
+ }
1214
+ },
1215
+
1216
+ async listUoms(
1217
+ environment: Environment,
1218
+ tenant: string,
1219
+ params: UomQueryParams
1220
+ ): Promise<UomApiResponse> {
1221
+ try {
1222
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1223
+ if (!token) {
1224
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1225
+ }
1226
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1227
+ client.setAuthToken(token);
1228
+ const queryString = new URLSearchParams();
1229
+ if (params.pageNo !== undefined) queryString.append('pageNo', params.pageNo.toString());
1230
+ if (params.pageSize) queryString.append('pageSize', params.pageSize.toString());
1231
+ if (params.status) queryString.append('status', params.status.toString());
1232
+ if (params.uomCode) queryString.append('uomCode', params.uomCode);
1233
+ if (params.uomName) queryString.append('uomName', params.uomName);
1234
+ const url = `/api/enterprise/sales/uom/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
1235
+ const response = await client.getClient().get<UomApiResponse>(url);
1236
+ return response.data;
1237
+ } catch (error) {
1238
+ return handleApiErrorUom(error);
1239
+ }
1240
+ },
1241
+
1242
+ async getUom(
1243
+ environment: Environment,
1244
+ tenant: string,
1245
+ uomId: string
1246
+ ): Promise<UomApiResponse> {
1247
+ try {
1248
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1249
+ if (!token) {
1250
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1251
+ }
1252
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1253
+ client.setAuthToken(token);
1254
+ const response = await client.getClient().get<UomApiResponse>(
1255
+ `/api/enterprise/sales/uom/detail?uomId=${uomId}`
1256
+ );
1257
+ return response.data;
1258
+ } catch (error) {
1259
+ return handleApiErrorUom(error);
1260
+ }
1261
+ },
1262
+
1263
+ async createUom(
1264
+ environment: Environment,
1265
+ tenant: string,
1266
+ data: CreateUomRequest
1267
+ ): Promise<UomApiResponse> {
1268
+ try {
1269
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1270
+ if (!token) {
1271
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1272
+ }
1273
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1274
+ client.setAuthToken(token);
1275
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/add', data);
1276
+ return response.data;
1277
+ } catch (error) {
1278
+ return handleApiErrorUom(error);
1279
+ }
1280
+ },
1281
+
1282
+ async updateUom(
1283
+ environment: Environment,
1284
+ tenant: string,
1285
+ data: UpdateUomRequest
1286
+ ): Promise<UomApiResponse> {
1287
+ try {
1288
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1289
+ if (!token) {
1290
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1291
+ }
1292
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1293
+ client.setAuthToken(token);
1294
+ const response = await client.getClient().post<UomApiResponse>('/api/enterprise/sales/uom/edit', data);
1295
+ return response.data;
1296
+ } catch (error) {
1297
+ return handleApiErrorUom(error);
1298
+ }
1299
+ },
1300
+
1301
+ async deleteUom(
1302
+ environment: Environment,
1303
+ tenant: string,
1304
+ uomId: string
1305
+ ): Promise<UomApiResponse> {
1306
+ try {
1307
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1308
+ if (!token) {
1309
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1310
+ }
1311
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1312
+ client.setAuthToken(token);
1313
+ const response = await client.getClient().post<UomApiResponse>(
1314
+ '/api/enterprise/sales/uom/delete',
1315
+ { uomId }
1316
+ );
1317
+ return response.data;
1318
+ } catch (error) {
1319
+ return handleApiErrorUom(error);
1320
+ }
1321
+ },
1322
+
1323
+ async enableUom(
1324
+ environment: Environment,
1325
+ tenant: string,
1326
+ uomId: string
1327
+ ): Promise<UomApiResponse> {
1328
+ try {
1329
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1330
+ if (!token) {
1331
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1332
+ }
1333
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1334
+ client.setAuthToken(token);
1335
+ const response = await client.getClient().post<UomApiResponse>(
1336
+ '/api/enterprise/sales/uom/batchActive',
1337
+ { uomIdList: [uomId] }
1338
+ );
1339
+ return response.data;
1340
+ } catch (error) {
1341
+ return handleApiErrorUom(error);
1342
+ }
1343
+ },
1344
+
1345
+ async disableUom(
1346
+ environment: Environment,
1347
+ tenant: string,
1348
+ uomId: string
1349
+ ): Promise<UomApiResponse> {
1350
+ try {
1351
+ const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
1352
+ if (!token) {
1353
+ return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
1354
+ }
1355
+ const client = createAPIClient('liberica' as Service, environment, tenant);
1356
+ client.setAuthToken(token);
1357
+ const response = await client.getClient().post<UomApiResponse>(
1358
+ '/api/enterprise/sales/uom/batchDeActive',
1359
+ { uomIdList: [uomId] }
1360
+ );
1361
+ return response.data;
1362
+ } catch (error) {
1363
+ return handleApiErrorUom(error);
1364
+ }
1365
+ },
1366
+
1367
+ };
1368
+
1369
+ function handleApiError(error: unknown): EmployeeApiResponse {
1370
+ if (axios.isAxiosError(error)) {
1371
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1372
+ const responseData = axiosError.response?.data;
1373
+ if (responseData) {
1374
+ const success = responseData.success as boolean | undefined;
1375
+ if (success === false) {
1376
+ const code = responseData.code as string | undefined;
1377
+ const message = responseData.message as string | undefined;
1378
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1379
+ if (!errorObj && (code || message)) {
1380
+ return {
1381
+ success: false,
1382
+ error: {
1383
+ code: code || 'API_ERROR',
1384
+ message: message || 'API error occurred',
1385
+ },
1386
+ };
1387
+ }
1388
+ }
1389
+ return responseData as unknown as EmployeeApiResponse;
1390
+ }
1391
+ return {
1392
+ success: false,
1393
+ error: {
1394
+ code: 'NETWORK_ERROR',
1395
+ message: axiosError.message || 'Network error occurred',
1396
+ },
1397
+ };
1398
+ }
1399
+ return {
1400
+ success: false,
1401
+ error: {
1402
+ code: 'UNKNOWN_ERROR',
1403
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1404
+ },
1405
+ };
1406
+ }
1407
+
1408
+ function handleApiErrorClient(error: unknown): ClientApiResponse {
1409
+ if (axios.isAxiosError(error)) {
1410
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1411
+ const responseData = axiosError.response?.data;
1412
+ if (responseData) {
1413
+ const success = responseData.success as boolean | undefined;
1414
+ if (success === false) {
1415
+ const code = responseData.code as string | undefined;
1416
+ const message = responseData.message as string | undefined;
1417
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1418
+ if (!errorObj && (code || message)) {
1419
+ return {
1420
+ success: false,
1421
+ error: {
1422
+ code: code || 'API_ERROR',
1423
+ message: message || 'API error occurred',
1424
+ },
1425
+ };
1426
+ }
1427
+ }
1428
+ return responseData as unknown as ClientApiResponse;
1429
+ }
1430
+ return {
1431
+ success: false,
1432
+ error: {
1433
+ code: 'NETWORK_ERROR',
1434
+ message: axiosError.message || 'Network error occurred',
1435
+ },
1436
+ };
1437
+ }
1438
+ return {
1439
+ success: false,
1440
+ error: {
1441
+ code: 'UNKNOWN_ERROR',
1442
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1443
+ },
1444
+ };
1445
+ }
1446
+
1447
+ function handleApiErrorSupplier(error: unknown): SupplierApiResponse {
1448
+ if (axios.isAxiosError(error)) {
1449
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1450
+ const responseData = axiosError.response?.data;
1451
+ if (responseData) {
1452
+ const success = responseData.success as boolean | undefined;
1453
+ if (success === false) {
1454
+ const code = responseData.code as string | undefined;
1455
+ const message = responseData.message as string | undefined;
1456
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1457
+ if (!errorObj && (code || message)) {
1458
+ return {
1459
+ success: false,
1460
+ error: {
1461
+ code: code || 'API_ERROR',
1462
+ message: message || 'API error occurred',
1463
+ },
1464
+ };
1465
+ }
1466
+ }
1467
+ return responseData as unknown as SupplierApiResponse;
1468
+ }
1469
+ return {
1470
+ success: false,
1471
+ error: {
1472
+ code: 'NETWORK_ERROR',
1473
+ message: axiosError.message || 'Network error occurred',
1474
+ },
1475
+ };
1476
+ }
1477
+ return {
1478
+ success: false,
1479
+ error: {
1480
+ code: 'UNKNOWN_ERROR',
1481
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1482
+ },
1483
+ };
1484
+ }
1485
+
1486
+ function handleApiErrorMaterial(error: unknown): MaterialApiResponse {
1487
+ if (axios.isAxiosError(error)) {
1488
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1489
+ const responseData = axiosError.response?.data;
1490
+ if (responseData) {
1491
+ const success = responseData.success as boolean | undefined;
1492
+ if (success === false) {
1493
+ const code = responseData.code as string | undefined;
1494
+ const message = responseData.message as string | undefined;
1495
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1496
+ if (!errorObj && (code || message)) {
1497
+ return {
1498
+ success: false,
1499
+ error: {
1500
+ code: code || 'API_ERROR',
1501
+ message: message || 'API error occurred',
1502
+ },
1503
+ };
1504
+ }
1505
+ }
1506
+ return responseData as unknown as MaterialApiResponse;
1507
+ }
1508
+ return {
1509
+ success: false,
1510
+ error: {
1511
+ code: 'NETWORK_ERROR',
1512
+ message: axiosError.message || 'Network error occurred',
1513
+ },
1514
+ };
1515
+ }
1516
+ return {
1517
+ success: false,
1518
+ error: {
1519
+ code: 'UNKNOWN_ERROR',
1520
+ message: error instanceof Error ? error.message : 'Unknown error occurred',
1521
+ },
1522
+ };
1523
+ }
1524
+
1525
+ function handleApiErrorUom(error: unknown): UomApiResponse {
1526
+ if (axios.isAxiosError(error)) {
1527
+ const axiosError = error as AxiosError<Record<string, unknown>>;
1528
+ const responseData = axiosError.response?.data;
1529
+ if (responseData) {
1530
+ const success = responseData.success as boolean | undefined;
1531
+ if (success === false) {
1532
+ const code = responseData.code as string | undefined;
1533
+ const message = responseData.message as string | undefined;
1534
+ const errorObj = responseData.error as { code?: string; message?: string } | undefined;
1535
+ if (!errorObj && (code || message)) {
1536
+ return {
1537
+ success: false,
1538
+ error: {
1539
+ code: code || 'API_ERROR',
1540
+ message: message || 'API error occurred',
1541
+ },
1542
+ };
1543
+ }
1544
+ }
1545
+ return responseData as unknown as UomApiResponse;
809
1546
  }
810
1547
  return {
811
1548
  success: false,