washday-sdk 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +126 -0
  2. package/babel.config.js +8 -0
  3. package/dist/api/attendance/delete.js +2 -0
  4. package/dist/api/attendance/get.js +83 -0
  5. package/dist/api/attendance/index.js +4 -0
  6. package/dist/api/attendance/post.js +39 -0
  7. package/dist/api/attendance/put.js +25 -0
  8. package/dist/api/auth/index.js +3 -0
  9. package/dist/api/auth/post.js +170 -0
  10. package/dist/api/axiosInstance.js +46 -0
  11. package/dist/api/cashierbox/delete.js +40 -0
  12. package/dist/api/cashierbox/get.js +63 -0
  13. package/dist/api/cashierbox/post.js +42 -0
  14. package/dist/api/cashierbox/put.js +42 -0
  15. package/dist/api/cashups/delete.js +25 -0
  16. package/dist/api/cashups/get.js +60 -0
  17. package/dist/api/cashups/index.js +4 -0
  18. package/dist/api/cashups/post.js +25 -0
  19. package/dist/api/cashups/put.js +52 -0
  20. package/dist/api/cfdi/delete.js +25 -0
  21. package/dist/api/cfdi/get.js +126 -0
  22. package/dist/api/cfdi/index.js +4 -0
  23. package/dist/api/cfdi/post.js +41 -0
  24. package/dist/api/cfdi/put.js +52 -0
  25. package/dist/api/companies/get.js +29 -0
  26. package/dist/api/companies/post.js +41 -0
  27. package/dist/api/companies/put.js +57 -0
  28. package/dist/api/countries/get.js +29 -0
  29. package/dist/api/countries/post.js +1 -0
  30. package/dist/api/countries/put.js +1 -0
  31. package/dist/api/csv/get.js +325 -0
  32. package/dist/api/csv/index.js +1 -0
  33. package/dist/api/customers/delete.js +40 -0
  34. package/dist/api/customers/get.js +106 -0
  35. package/dist/api/customers/index.js +4 -0
  36. package/dist/api/customers/post.js +41 -0
  37. package/dist/api/customers/put.js +52 -0
  38. package/dist/api/discounts/get.js +120 -0
  39. package/dist/api/discounts/post.js +40 -0
  40. package/dist/api/discounts/put.js +68 -0
  41. package/dist/api/index.js +319 -0
  42. package/dist/api/inventory/delete.js +26 -0
  43. package/dist/api/inventory/get.js +62 -0
  44. package/dist/api/inventory/index.js +4 -0
  45. package/dist/api/inventory/post.js +26 -0
  46. package/dist/api/inventory/put.js +41 -0
  47. package/dist/api/order/delete.js +40 -0
  48. package/dist/api/order/get.js +181 -0
  49. package/dist/api/order/index.js +4 -0
  50. package/dist/api/order/post.js +115 -0
  51. package/dist/api/order/put.js +202 -0
  52. package/dist/api/outsourcedOrders/delete.js +25 -0
  53. package/dist/api/outsourcedOrders/get.js +62 -0
  54. package/dist/api/outsourcedOrders/index.js +4 -0
  55. package/dist/api/outsourcedOrders/post.js +25 -0
  56. package/dist/api/outsourcedOrders/put.js +25 -0
  57. package/dist/api/partners/delete.js +25 -0
  58. package/dist/api/partners/get.js +40 -0
  59. package/dist/api/partners/index.js +4 -0
  60. package/dist/api/partners/post.js +25 -0
  61. package/dist/api/partners/put.js +25 -0
  62. package/dist/api/pdf/get.js +43 -0
  63. package/dist/api/pdf/index.js +1 -0
  64. package/dist/api/products/delete.js +40 -0
  65. package/dist/api/products/get.js +25 -0
  66. package/dist/api/products/index.js +4 -0
  67. package/dist/api/products/post.js +60 -0
  68. package/dist/api/products/put.js +40 -0
  69. package/dist/api/publics/get.js +26 -0
  70. package/dist/api/publics/index.js +1 -0
  71. package/dist/api/reports/get.js +303 -0
  72. package/dist/api/reports/index.js +1 -0
  73. package/dist/api/reviews/delete.js +15 -0
  74. package/dist/api/reviews/get.js +41 -0
  75. package/dist/api/reviews/index.js +4 -0
  76. package/dist/api/reviews/post.js +20 -0
  77. package/dist/api/reviews/put.js +52 -0
  78. package/dist/api/routes/delete.js +25 -0
  79. package/dist/api/routes/get.js +95 -0
  80. package/dist/api/routes/index.js +4 -0
  81. package/dist/api/routes/post.js +67 -0
  82. package/dist/api/routes/put.js +54 -0
  83. package/dist/api/sections/delete.js +25 -0
  84. package/dist/api/sections/get.js +71 -0
  85. package/dist/api/sections/index.js +4 -0
  86. package/dist/api/sections/post.js +26 -0
  87. package/dist/api/sections/put.js +25 -0
  88. package/dist/api/staff/delete.js +26 -0
  89. package/dist/api/staff/get.js +40 -0
  90. package/dist/api/staff/post.js +26 -0
  91. package/dist/api/staff/put.js +26 -0
  92. package/dist/api/stores/get.js +110 -0
  93. package/dist/api/stores/post.js +61 -0
  94. package/dist/api/stores/put.js +44 -0
  95. package/dist/api/stripe/get.js +1 -0
  96. package/dist/api/stripe/post.js +71 -0
  97. package/dist/api/stripe/put.js +1 -0
  98. package/dist/api/supplies/delete.js +26 -0
  99. package/dist/api/supplies/get.js +62 -0
  100. package/dist/api/supplies/post.js +26 -0
  101. package/dist/api/supplies/put.js +41 -0
  102. package/dist/api/users/delete.js +26 -0
  103. package/dist/api/users/post.js +25 -0
  104. package/dist/api/users/put.js +29 -0
  105. package/dist/enum/index.js +12 -7
  106. package/dist/index.js +3 -28
  107. package/dist/interfaces/Api.js +1 -0
  108. package/dist/interfaces/Apple.js +16 -0
  109. package/dist/interfaces/Attendance.js +1 -0
  110. package/dist/interfaces/Customer.js +1 -2
  111. package/dist/interfaces/Order.js +1 -2
  112. package/dist/interfaces/Permission.js +1 -2
  113. package/dist/interfaces/Product.js +1 -2
  114. package/dist/interfaces/Section.js +1 -2
  115. package/dist/interfaces/Store.js +1 -2
  116. package/dist/interfaces/StoreImage.js +1 -2
  117. package/dist/interfaces/User.js +1 -2
  118. package/dist/utils/apiUtils.js +9 -0
  119. package/dist/utils/index.js +2 -17
  120. package/dist/utils/orders/calculateOrderTotal.js +30 -21
  121. package/dist/utils/orders/calculateTotalTaxesIncluded.js +55 -29
  122. package/dist/utils/orders/calculateTotalTaxesOverPrice.js +56 -45
  123. package/dist/utils/orders/helpers.js +126 -17
  124. package/dist/utils/orders/index.js +3 -5
  125. package/dist/utils/receipt/generateReceiptHTML.js +157 -0
  126. package/dist/utils/util.js +63 -0
  127. package/docs/README.md +66 -0
  128. package/docs/examples/common-use-cases.md +487 -0
  129. package/docs/getting-started.md +237 -0
  130. package/docs/modules/attendance.md +404 -0
  131. package/jest.config.js +0 -0
  132. package/package.json +12 -4
  133. package/src/api/attendance/delete.ts +1 -0
  134. package/src/api/attendance/get.ts +81 -0
  135. package/src/api/attendance/index.ts +4 -0
  136. package/src/api/attendance/post.ts +37 -0
  137. package/src/api/attendance/put.ts +20 -0
  138. package/src/api/auth/index.ts +3 -0
  139. package/src/api/auth/post.ts +198 -0
  140. package/src/api/axiosInstance.ts +13 -3
  141. package/src/api/cashierbox/delete.ts +28 -0
  142. package/src/api/cashierbox/get.ts +53 -0
  143. package/src/api/cashierbox/post.ts +39 -0
  144. package/src/api/cashierbox/put.ts +32 -0
  145. package/src/api/cashups/delete.ts +15 -0
  146. package/src/api/cashups/get.ts +52 -0
  147. package/src/api/cashups/index.ts +4 -0
  148. package/src/api/cashups/post.ts +23 -0
  149. package/src/api/cashups/put.ts +53 -0
  150. package/src/api/cfdi/delete.ts +21 -0
  151. package/src/api/cfdi/get.ts +119 -0
  152. package/src/api/cfdi/index.ts +4 -0
  153. package/src/api/cfdi/post.ts +60 -0
  154. package/src/api/cfdi/put.ts +53 -0
  155. package/src/api/companies/get.ts +23 -0
  156. package/src/api/companies/post.ts +29 -0
  157. package/src/api/companies/put.ts +43 -0
  158. package/src/api/countries/get.ts +23 -0
  159. package/src/api/countries/post.ts +0 -0
  160. package/src/api/countries/put.ts +0 -0
  161. package/src/api/csv/get.ts +354 -0
  162. package/src/api/csv/index.ts +1 -0
  163. package/src/api/customers/delete.ts +29 -0
  164. package/src/api/customers/get.ts +83 -12
  165. package/src/api/customers/index.ts +4 -0
  166. package/src/api/customers/post.ts +48 -0
  167. package/src/api/customers/put.ts +68 -0
  168. package/src/api/discounts/get.ts +100 -0
  169. package/src/api/discounts/post.ts +35 -0
  170. package/src/api/discounts/put.ts +66 -0
  171. package/src/api/index.ts +320 -12
  172. package/src/api/inventory/delete.ts +16 -0
  173. package/src/api/inventory/get.ts +53 -0
  174. package/src/api/inventory/index.ts +4 -0
  175. package/src/api/inventory/post.ts +22 -0
  176. package/src/api/inventory/put.ts +35 -0
  177. package/src/api/order/delete.ts +29 -0
  178. package/src/api/order/get.ts +207 -0
  179. package/src/api/order/index.ts +4 -0
  180. package/src/api/order/post.ts +118 -0
  181. package/src/api/order/put.ts +224 -0
  182. package/src/api/outsourcedOrders/delete.ts +15 -0
  183. package/src/api/outsourcedOrders/get.ts +54 -0
  184. package/src/api/outsourcedOrders/index.ts +4 -0
  185. package/src/api/outsourcedOrders/post.ts +24 -0
  186. package/src/api/outsourcedOrders/put.ts +21 -0
  187. package/src/api/partners/delete.ts +15 -0
  188. package/src/api/partners/get.ts +28 -0
  189. package/src/api/partners/index.ts +4 -0
  190. package/src/api/partners/post.ts +21 -0
  191. package/src/api/partners/put.ts +21 -0
  192. package/src/api/pdf/get.ts +43 -0
  193. package/src/api/pdf/index.ts +1 -0
  194. package/src/api/products/delete.ts +28 -0
  195. package/src/api/products/get.ts +16 -0
  196. package/src/api/products/index.ts +4 -0
  197. package/src/api/products/post.ts +73 -0
  198. package/src/api/products/put.ts +49 -0
  199. package/src/api/publics/get.ts +16 -0
  200. package/src/api/publics/index.ts +1 -0
  201. package/src/api/reports/get.ts +329 -0
  202. package/src/api/reports/index.ts +1 -0
  203. package/src/api/reviews/delete.ts +15 -0
  204. package/src/api/reviews/get.ts +31 -0
  205. package/src/api/reviews/index.ts +4 -0
  206. package/src/api/reviews/post.ts +20 -0
  207. package/src/api/reviews/put.ts +53 -0
  208. package/src/api/routes/delete.ts +15 -0
  209. package/src/api/routes/get.ts +86 -0
  210. package/src/api/routes/index.ts +4 -0
  211. package/src/api/routes/post.ts +60 -0
  212. package/src/api/routes/put.ts +44 -0
  213. package/src/api/sections/delete.ts +15 -0
  214. package/src/api/sections/get.ts +67 -0
  215. package/src/api/sections/index.ts +4 -0
  216. package/src/api/sections/post.ts +22 -0
  217. package/src/api/sections/put.ts +23 -0
  218. package/src/api/staff/delete.ts +16 -0
  219. package/src/api/staff/get.ts +29 -0
  220. package/src/api/staff/post.ts +17 -0
  221. package/src/api/staff/put.ts +17 -0
  222. package/src/api/stores/get.ts +93 -0
  223. package/src/api/stores/post.ts +49 -0
  224. package/src/api/stores/put.ts +35 -0
  225. package/src/api/stripe/get.ts +0 -0
  226. package/src/api/stripe/post.ts +59 -0
  227. package/src/api/stripe/put.ts +0 -0
  228. package/src/api/supplies/delete.ts +16 -0
  229. package/src/api/supplies/get.ts +53 -0
  230. package/src/api/supplies/post.ts +26 -0
  231. package/src/api/supplies/put.ts +33 -0
  232. package/src/api/users/delete.ts +16 -0
  233. package/src/api/users/post.ts +18 -0
  234. package/src/api/users/put.ts +36 -0
  235. package/src/enum/index.ts +9 -1
  236. package/src/index.ts +1 -4
  237. package/src/interfaces/Api.ts +308 -0
  238. package/src/interfaces/Apple.ts +74 -0
  239. package/src/interfaces/Attendance.ts +45 -0
  240. package/src/interfaces/Customer.ts +15 -11
  241. package/src/interfaces/Order.ts +38 -1
  242. package/src/interfaces/Product.ts +1 -0
  243. package/src/interfaces/Store.ts +41 -0
  244. package/src/utils/apiUtils.ts +11 -0
  245. package/src/utils/index.ts +6 -1
  246. package/src/utils/orders/calculateOrderTotal.test.js +930 -0
  247. package/src/utils/orders/calculateOrderTotal.ts +60 -15
  248. package/src/utils/orders/calculateTotalTaxesIncluded.ts +57 -25
  249. package/src/utils/orders/calculateTotalTaxesOverPrice.ts +57 -41
  250. package/src/utils/orders/helpers.ts +195 -47
  251. package/src/utils/orders/index.ts +3 -1
  252. package/src/utils/receipt/generateReceiptHTML.ts +163 -0
  253. package/src/utils/util.ts +65 -0
  254. package/tsconfig.json +13 -9
@@ -0,0 +1,31 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import { IOrder } from "../../interfaces/Order";
3
+ import { generateQueryParamsStr } from "../../utils/apiUtils";
4
+ import axiosInstance from "../axiosInstance";
5
+ const GET_SET_REVIEWS = 'api/review';
6
+
7
+ export const getList = async function (this: WashdayClientInstance, storeId: string, params: { sortBy: 'desc' | 'asc' | -1 | 1 }): Promise<any> {
8
+ try {
9
+ const config = {
10
+ headers: { Authorization: `Bearer ${this.apiToken}` }
11
+ };
12
+ const queryParams = generateQueryParamsStr(['sortBy'], params);
13
+
14
+ return await axiosInstance.get(`${GET_SET_REVIEWS}/${storeId}?${queryParams}`, config);
15
+ } catch (error) {
16
+ console.error('Error fetching:', error);
17
+ throw error;
18
+ }
19
+ }
20
+
21
+ export const requestStoreReviewByCustomerId = async function (this: WashdayClientInstance, storeId: string, customerId: string): Promise<any> {
22
+ try {
23
+ const config = {
24
+ headers: { Authorization: `Bearer ${this.apiToken}` }
25
+ };
26
+ return await axiosInstance.get(`${GET_SET_REVIEWS}/request/${storeId}/${customerId}`, config);
27
+ } catch (error) {
28
+ console.error('Error fetching:', error);
29
+ throw error;
30
+ }
31
+ }
@@ -0,0 +1,4 @@
1
+ // export * as deleteModule from './delete';
2
+ export * as getModule from './get';
3
+ // export * as postModule from './post';
4
+ // export * as putModule from './put';
@@ -0,0 +1,20 @@
1
+ // import { WashdayClientInstance } from "../../interfaces/Api";
2
+ // import axiosInstance from "../axiosInstance";
3
+ // const GET_SET_ORDER_PAYMENTLINES = (orderId: string) => `/api/v2/order/${orderId}/paymentLines`;
4
+
5
+ // export const createPaymentLine = async function (this: WashdayClientInstance, id: string, data: {
6
+ // amountPaid: number,
7
+ // cashierBox: string,
8
+ // paymentMethod: string
9
+ // paymentDate: Date
10
+ // }): Promise<any> {
11
+ // try {
12
+ // const config = {
13
+ // headers: { Authorization: `Bearer ${this.apiToken}` }
14
+ // };
15
+ // return await axiosInstance.post(`${GET_SET_ORDER_PAYMENTLINES(id)}`, data, config);
16
+ // } catch (error) {
17
+ // console.error('Error fetching create:', error);
18
+ // throw error;
19
+ // }
20
+ // };
@@ -0,0 +1,53 @@
1
+ // import { WashdayClientInstance } from "../../interfaces/Api";
2
+ // import axiosInstance from "../axiosInstance";
3
+ // const GET_SET_ORDER = 'api/v2/order';
4
+ // const GET_SET_ORDER_PAYMENTLINES = (orderId: string) => `/api/v2/order/${orderId}/paymentLines`;
5
+
6
+ // export const updateById = async function (this: WashdayClientInstance, id: string, data: {
7
+ // status?: string,
8
+ // products?: any[],
9
+ // buyAndGetProducts?: any[],
10
+ // customer?: string,
11
+ // discountCode?: string | null,
12
+ // notes?: string,
13
+ // privateNotes?: string,
14
+ // delivery?: boolean,
15
+ // pickup?: boolean,
16
+ // express?: boolean,
17
+ // deliveryInfo?: {
18
+ // date: Date,
19
+ // fromTime: string,
20
+ // toTime?: string
21
+ // },
22
+ // pickupInfo?: {
23
+ // date: Date,
24
+ // fromTime: string,
25
+ // toTime?: string
26
+ // },
27
+ // notifyBy?: string,
28
+ // }): Promise<any> {
29
+ // try {
30
+ // const config = {
31
+ // headers: { Authorization: `Bearer ${this.apiToken}` }
32
+ // };
33
+ // return await axiosInstance.put(`${GET_SET_ORDER}/${id}`, data, config);
34
+ // } catch (error) {
35
+ // console.error('Error fetching updateById:', error);
36
+ // throw error;
37
+ // }
38
+ // };
39
+
40
+ // export const updatePaymentLineById = async function (this: WashdayClientInstance, orderId: string, id: string, data: {
41
+ // amountPaid: number
42
+ // updatedDate: Date
43
+ // }): Promise<any> {
44
+ // try {
45
+ // const config = {
46
+ // headers: { Authorization: `Bearer ${this.apiToken}` }
47
+ // };
48
+ // return await axiosInstance.put(`${GET_SET_ORDER_PAYMENTLINES(orderId)}/${id}`, data, config);
49
+ // } catch (error) {
50
+ // console.error('Error fetching updateById:', error);
51
+ // throw error;
52
+ // }
53
+ // };
@@ -0,0 +1,15 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+ const GET_SET_ROUTES = 'api/routes';
4
+
5
+ export const deleteRouteById = async function (this: WashdayClientInstance, id: string): Promise<any> {
6
+ try {
7
+ const config = {
8
+ headers: { Authorization: `Bearer ${this.apiToken}` }
9
+ };
10
+ return await axiosInstance.delete(`${GET_SET_ROUTES}/${id}`, config);
11
+ } catch (error) {
12
+ console.error('Error fetching deleteRouteById:', error);
13
+ throw error;
14
+ }
15
+ };
@@ -0,0 +1,86 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import { IOrder } from "../../interfaces/Order";
3
+ import { generateQueryParamsStr } from "../../utils/apiUtils";
4
+ import axiosInstance from "../axiosInstance";
5
+ const GET_SET_ROUTES_ORDERS = 'api/routes/orders';
6
+ const GET_STORE_ROUTES = 'api/storeRoutes';
7
+ const GET_STORE_ROUTES_BY_ID = 'api/stores/:id/routes';
8
+ const GET_ROUTE = 'api/routes';
9
+
10
+ //@deprecated
11
+ export const getOrdersForRoute = async function (this: WashdayClientInstance, params: {
12
+ store: string | undefined,
13
+ routeDate: string | undefined,
14
+ }): Promise<any> {
15
+ try {
16
+ const config = {
17
+ headers: { Authorization: `Bearer ${this.apiToken}` }
18
+ };
19
+ const queryParams = generateQueryParamsStr([
20
+ 'store',
21
+ 'routeDate'
22
+ ], params);
23
+ return await axiosInstance.get(`${GET_SET_ROUTES_ORDERS}?${queryParams}`, config);
24
+ } catch (error) {
25
+ console.error('Error fetching getOrdersForRoute:', error);
26
+ throw error;
27
+ }
28
+ };
29
+
30
+ //@deprecated
31
+ export const getStoreRoutesList = async function (this: WashdayClientInstance, storeId: string): Promise<any> {
32
+ try {
33
+ const config = {
34
+ headers: { Authorization: `Bearer ${this.apiToken}` }
35
+ };
36
+ return await axiosInstance.get(`${GET_STORE_ROUTES}/${storeId}`, config);
37
+ } catch (error) {
38
+ console.error('Error fetching getStoreRoutesList:', error);
39
+ throw error;
40
+ }
41
+ };
42
+
43
+
44
+ //NEW V2 ENDPOINTS
45
+ export const getRoutesByStore = async function (this: WashdayClientInstance, storeId: string): Promise<any> {
46
+ try {
47
+ const config = {
48
+ headers: { Authorization: `Bearer ${this.apiToken}` }
49
+ };
50
+ return await axiosInstance.get(`${GET_STORE_ROUTES_BY_ID.replace(':id', storeId)}`, config);
51
+ } catch (error) {
52
+ console.error('Error fetching getRoutesByStore:', error);
53
+ throw error;
54
+ }
55
+ };
56
+
57
+ export const getRouteByIdV2 = async function (this: WashdayClientInstance, routeId: string): Promise<any> {
58
+ try {
59
+ const config = {
60
+ headers: { Authorization: `Bearer ${this.apiToken}` }
61
+ };
62
+ return await axiosInstance.get(`${GET_ROUTE}/${routeId}`, config);
63
+ } catch (error) {
64
+ console.error('Error fetching getRouteByIdV2:', error);
65
+ throw error;
66
+ }
67
+ };
68
+
69
+ export const getRoutesByDriver = async function (this: WashdayClientInstance, query: {
70
+ status?: string,
71
+ }): Promise<any> {
72
+ try {
73
+ const config = {
74
+ headers: { Authorization: `Bearer ${this.apiToken}` }
75
+ };
76
+ const queryParams = generateQueryParamsStr([
77
+ 'status',
78
+ ], query);
79
+ return await axiosInstance.get(`${GET_ROUTE}?${queryParams}`, config);
80
+ } catch (error) {
81
+ console.error('Error fetching getRoutesByDriver:', error);
82
+ throw error;
83
+ }
84
+ };
85
+
86
+
@@ -0,0 +1,4 @@
1
+ export * as getModule from './get';
2
+ export * as postModule from './post';
3
+ export * as putModule from './put';
4
+ export * as deleteModule from './delete';
@@ -0,0 +1,60 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+ const GET_SET_ROUTES = 'api/routes';
4
+ const GET_STORE_ROUTES_BY_ID = 'api/stores/:id/routes';
5
+
6
+ //@deprecated
7
+ export const createRoute = async function (this: WashdayClientInstance, data: {
8
+ driver: string;
9
+ store: string;
10
+ orders: {
11
+ _id: string,
12
+ nextStatus: string,
13
+ deliveringDateTime?: string,
14
+ pickingUpDateTime?: string,
15
+ collectedDateTime?: string
16
+ }[];
17
+ createdDate: string;
18
+ isActive: boolean
19
+ }): Promise<any> {
20
+ try {
21
+ const config = {
22
+ headers: { Authorization: `Bearer ${this.apiToken}` }
23
+ };
24
+ return await axiosInstance.post(GET_SET_ROUTES, data, config);
25
+ } catch (error) {
26
+ console.error('Error fetching createRoute:', error);
27
+ throw error;
28
+ }
29
+ };
30
+
31
+
32
+ export const createRouteV2 = async function (this: WashdayClientInstance, data: {
33
+ storeId: string,
34
+ driver: string,
35
+ orders: Array<string>,
36
+ }): Promise<any> {
37
+ try {
38
+ const config = {
39
+ headers: { Authorization: `Bearer ${this.apiToken}` }
40
+ };
41
+ const { storeId, ...rest } = data;
42
+ return await axiosInstance.post(GET_STORE_ROUTES_BY_ID.replace(':id', storeId), rest, config);
43
+ } catch (error) {
44
+ console.error('Error fetching createRouteV2:', error);
45
+ throw error;
46
+ }
47
+ };
48
+
49
+
50
+ export const startRoute = async function (this: WashdayClientInstance, routeId: string): Promise<any> {
51
+ try {
52
+ const config = {
53
+ headers: { Authorization: `Bearer ${this.apiToken}` }
54
+ };
55
+ return await axiosInstance.post(`${GET_SET_ROUTES}/${routeId}/start`, {}, config);
56
+ } catch (error) {
57
+ console.error('Error fetching startRoute:', error);
58
+ throw error;
59
+ }
60
+ };
@@ -0,0 +1,44 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+ const GET_STORE_ROUTES = 'api/storeRoutes';
4
+ const GET_ROUTE = 'api/routes';
5
+
6
+ export const closeStoreRoutes = async function (this: WashdayClientInstance, storeId: string, data: {
7
+ routes: string[],
8
+ }): Promise<any> {
9
+ try {
10
+ const config = {
11
+ headers: { Authorization: `Bearer ${this.apiToken}` }
12
+ };
13
+ return await axiosInstance.put(`${GET_STORE_ROUTES}/${storeId}/close`, data, config);
14
+ } catch (error) {
15
+ console.error('Error fetching closeStoreRoutes:', error);
16
+ throw error;
17
+ }
18
+ };
19
+
20
+ export const closeRouteById = async function (this: WashdayClientInstance, routeId: string): Promise<any> {
21
+ try {
22
+ const config = {
23
+ headers: { Authorization: `Bearer ${this.apiToken}` }
24
+ };
25
+ return await axiosInstance.put(`${GET_ROUTE}/${routeId}/close`, {}, config);
26
+ } catch (error) {
27
+ console.error('Error fetching closeRouteById:', error);
28
+ throw error;
29
+ }
30
+ };
31
+
32
+ export const updateRouteById = async function (this: WashdayClientInstance, routeId: string, data: {
33
+ driver?: string,
34
+ }): Promise<any> {
35
+ try {
36
+ const config = {
37
+ headers: { Authorization: `Bearer ${this.apiToken}` }
38
+ };
39
+ return await axiosInstance.put(`${GET_ROUTE}/${routeId}`, data, config);
40
+ } catch (error) {
41
+ console.error('Error fetching updateRouteById:', error);
42
+ throw error;
43
+ }
44
+ };
@@ -0,0 +1,15 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+ const GET_SET_SECTIONS = 'api/section';
4
+
5
+ export const deleteById = async function (this: WashdayClientInstance, id: string): Promise<any> {
6
+ try {
7
+ const config = {
8
+ headers: { Authorization: `Bearer ${this.apiToken}` }
9
+ };
10
+ return await axiosInstance.delete(`${GET_SET_SECTIONS}/${id}`, config);
11
+ } catch (error) {
12
+ console.error('Error fetching deleteById:', error);
13
+ throw error;
14
+ }
15
+ };
@@ -0,0 +1,67 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import { ISection } from "../../interfaces/Section";
3
+ import { IStore } from "../../interfaces/Store";
4
+ import { generateQueryParamsStr } from "../../utils/apiUtils";
5
+ import axiosInstance from "../axiosInstance";
6
+ const GET_SET_SECTIONS = 'api/section';
7
+ const GET_SET_SECTIONS_WASHDAY_APP = 'api/v2/washdayapp/sections';
8
+
9
+ export const getList = async function (this: WashdayClientInstance, params?: {
10
+ storeId?: string
11
+ isActive?: string
12
+ products?: boolean
13
+ }): Promise<any> {
14
+ try {
15
+ const config = {
16
+ headers: { Authorization: `Bearer ${this.apiToken}` }
17
+ };
18
+ let queryParams = '';
19
+ if (params?.hasOwnProperty('storeId')) {
20
+ queryParams += `store=${params?.storeId}`
21
+ }
22
+ if (params?.hasOwnProperty('isActive')) {
23
+ queryParams += `&isActive=${params?.isActive}`
24
+ } else {
25
+ queryParams += `&isActive=true`
26
+ }
27
+ if (params?.hasOwnProperty('products')) {
28
+ queryParams += `&products=${params?.products}`
29
+ }
30
+
31
+ return await axiosInstance.get(`${GET_SET_SECTIONS}?${queryParams}`, config);
32
+ } catch (error) {
33
+ console.error('Error fetching getStoreStaff:', error);
34
+ throw error;
35
+ }
36
+ };
37
+
38
+ export const getById = async function (this: WashdayClientInstance, id: string): Promise<any> {
39
+ try {
40
+ const config = {
41
+ headers: { Authorization: `Bearer ${this.apiToken}` }
42
+ };
43
+ return await axiosInstance.get(`${GET_SET_SECTIONS}/${id}`, config);
44
+ } catch (error) {
45
+ console.error('Error fetching getSectionById:', error);
46
+ throw error;
47
+ }
48
+ };
49
+
50
+ export const getSectionsByStoreCustomersApp = async function (this: WashdayClientInstance,
51
+ params: {
52
+ storeId: string
53
+ }
54
+ ): Promise<{ store: IStore }> {
55
+ try {
56
+ const config = {
57
+ headers: { Authorization: `Bearer ${this.apiToken}` }
58
+ };
59
+ const queryParams = generateQueryParamsStr([
60
+ 'storeId',
61
+ ], params);
62
+ return await axiosInstance.get(`${GET_SET_SECTIONS_WASHDAY_APP}?${queryParams}`, config);
63
+ } catch (error) {
64
+ console.error('Error fetching getSectionsByStoreCustomersApp:', error);
65
+ throw error;
66
+ }
67
+ };
@@ -0,0 +1,4 @@
1
+ export * as deleteModule from './delete';
2
+ export * as getModule from './get';
3
+ export * as postModule from './post';
4
+ export * as putModule from './put';
@@ -0,0 +1,22 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+
4
+ const GET_SET_SECTIONS = 'api/section';
5
+
6
+ export const create = async function (this: WashdayClientInstance, data: {
7
+ name: string;
8
+ order: number;
9
+ boxColor: string;
10
+ store: string;
11
+ }): Promise<any> {
12
+ try {
13
+ const config = {
14
+ headers: { Authorization: `Bearer ${this.apiToken}` }
15
+ };
16
+ const response = await axiosInstance.post(`${GET_SET_SECTIONS}`, data, config);
17
+ return response;
18
+ } catch (error) {
19
+ console.error('Error fetching create:', error);
20
+ throw error;
21
+ }
22
+ };
@@ -0,0 +1,23 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+
4
+ const GET_SET_SECTIONS = 'api/section';
5
+
6
+ export const updateById = async function (this: WashdayClientInstance, id: string, data: {
7
+ name?: string;
8
+ order?: number;
9
+ boxColor?: string;
10
+ showInApp?: boolean,
11
+ product?: any
12
+ }): Promise<any> {
13
+ try {
14
+ const config = {
15
+ headers: { Authorization: `Bearer ${this.apiToken}` }
16
+ };
17
+ return await axiosInstance.put(`${GET_SET_SECTIONS}/${id}`, data, config);
18
+ } catch (error) {
19
+ console.error('Error fetching updateById:', error);
20
+ throw error;
21
+ }
22
+ };
23
+
@@ -0,0 +1,16 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+ const GET_SET_STAFF = (storeId: string) => `api/store/${storeId}/staff`;
4
+
5
+ export const deleteStoreStaffById = async function (this: WashdayClientInstance, storeId: string, staffId: string): Promise<any> {
6
+ try {
7
+ const config = {
8
+ headers: { Authorization: `Bearer ${this.apiToken}` }
9
+ };
10
+ const response = await axiosInstance.delete(`${GET_SET_STAFF(storeId)}/${staffId}`, config);
11
+ return response;
12
+ } catch (error) {
13
+ console.error('Error fetching getStoreStaff:', error);
14
+ throw error;
15
+ }
16
+ };
@@ -0,0 +1,29 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+
4
+ const GET_SET_STAFF = (storeId: string) => `api/store/${storeId}/staff`;
5
+
6
+ export const getStoreStaff = async function (this: WashdayClientInstance, storeId: string, queryParams?: string): Promise<any> {
7
+ try {
8
+ const config = {
9
+ headers: { Authorization: `Bearer ${this.apiToken}` }
10
+ };
11
+ const response = await axiosInstance.get(`${GET_SET_STAFF(storeId)}?${queryParams}`, config);
12
+ return response;
13
+ } catch (error) {
14
+ console.error('Error fetching getStoreStaff:', error);
15
+ throw error;
16
+ }
17
+ };
18
+
19
+ export const getStoreStaffById = async function (this: WashdayClientInstance, storeId: string, staffId: string): Promise<any> {
20
+ try {
21
+ const config = {
22
+ headers: { Authorization: `Bearer ${this.apiToken}` }
23
+ };
24
+ return await axiosInstance.get(`${GET_SET_STAFF(storeId)}/${staffId}`, config);
25
+ } catch (error) {
26
+ console.error('Error fetching getStoreStaffById:', error);
27
+ throw error;
28
+ }
29
+ };
@@ -0,0 +1,17 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import axiosInstance from "../axiosInstance";
3
+
4
+ const GET_SET_STAFF = (storeId: string) => `api/store/${storeId}/staff`;
5
+
6
+ export const createStoreStaff = async function (this: WashdayClientInstance, storeId: string, data: any): Promise<any> {
7
+ try {
8
+ const config = {
9
+ headers: { Authorization: `Bearer ${this.apiToken}` }
10
+ };
11
+ const response = await axiosInstance.post(`${GET_SET_STAFF(storeId)}`, data, config);
12
+ return response;
13
+ } catch (error) {
14
+ console.error('Error fetching createStoreImage:', error);
15
+ throw error;
16
+ }
17
+ };
@@ -0,0 +1,17 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import { IStore } from "../../interfaces/Store";
3
+ import axiosInstance from "../axiosInstance";
4
+ const GET_SET_STAFF = (storeId: string) => `api/store/${storeId}/staff`;
5
+
6
+ export const updateStoreStaffById = async function (this: WashdayClientInstance, storeId: string, staffId: string, data: any): Promise<any> {
7
+ try {
8
+ const config = {
9
+ headers: { Authorization: `Bearer ${this.apiToken}` }
10
+ };
11
+ const response = await axiosInstance.put(`${GET_SET_STAFF(storeId)}/${staffId}`, data, config);
12
+ return response;
13
+ } catch (error) {
14
+ console.error('Error fetching getStoreById:', error);
15
+ throw error;
16
+ }
17
+ };
@@ -0,0 +1,93 @@
1
+ import { WashdayClientInstance } from "../../interfaces/Api";
2
+ import { IStore } from "../../interfaces/Store";
3
+ import { generateQueryParamsStr } from "../../utils/apiUtils";
4
+ import axiosInstance from "../axiosInstance";
5
+
6
+ const GET_SET_STORES = 'api/store';
7
+ const GET_SET_STORE_IMAGE = 'api/store-image';
8
+ const REQUEST_PARAMS = {
9
+ token: 'LOGGED_USER_TOKEN',
10
+ };
11
+ const GET_STORES_WASHDAY_APP = 'api/v2/washdayapp/store';
12
+
13
+ export const getStores = async function (this: WashdayClientInstance, params: {
14
+ isActive?: string
15
+ }): Promise<{ stores: IStore[] }> {
16
+ try {
17
+ REQUEST_PARAMS.token = this.apiToken;
18
+ let queryParams = '';
19
+ if (params.isActive) {
20
+ queryParams += `isActive=${params.isActive}`
21
+ }
22
+ const response = await axiosInstance.get(`${GET_SET_STORES}?${queryParams}`, { params: { ...REQUEST_PARAMS } });
23
+ return response.data?.data?.stores || [];
24
+ } catch (error) {
25
+ console.error('Error fetching getStores:', error);
26
+ throw error;
27
+ }
28
+ };
29
+
30
+
31
+ export const getStoreReviewLink = async function (this: WashdayClientInstance, storeId: string): Promise<any> {
32
+ try {
33
+ const config = {
34
+ headers: { Authorization: `Bearer ${this.apiToken}` }
35
+ };
36
+ const response = await axiosInstance.get(`${GET_SET_STORES}/review-link/${storeId}`, config);
37
+ return response;
38
+ } catch (error) {
39
+ console.error('Error fetching getStoreReviewLink:', error);
40
+ throw error;
41
+ }
42
+ };
43
+
44
+ export const getStoreById = async function (this: WashdayClientInstance, storeId: string): Promise<{ store: IStore }> {
45
+ try {
46
+ REQUEST_PARAMS.token = this.apiToken;
47
+ const response = await axiosInstance.get(`${GET_SET_STORES}/${storeId}`, { params: { ...REQUEST_PARAMS } });
48
+ return response.data?.data || {}
49
+ } catch (error) {
50
+ console.error('Error fetching getStoreById:', error);
51
+ throw error;
52
+ }
53
+ };
54
+
55
+ export const getStoreImages = async function (this: WashdayClientInstance, storeId: string): Promise<any> {
56
+ try {
57
+ const config = {
58
+ headers: { Authorization: `Bearer ${this.apiToken}` }
59
+ };
60
+ const response = await axiosInstance.get(`${GET_SET_STORE_IMAGE}?store=${storeId}`, config);
61
+ return response;
62
+ } catch (error) {
63
+ console.error('Error fetching getStoreImages:', error);
64
+ throw error;
65
+ }
66
+ };
67
+
68
+ export const getStoresByName = async function (this: WashdayClientInstance, query: {
69
+ q?: string
70
+ }): Promise<{ stores: IStore[] }> {
71
+ try {
72
+ const config = {};
73
+ const queryParams = generateQueryParamsStr(['q'], query);
74
+ const response = await axiosInstance.get(`${GET_STORES_WASHDAY_APP}?${queryParams}`, config);
75
+ return response.data?.data?.stores || [];
76
+ } catch (error) {
77
+ console.error('Error fetching getStoresByName:', error);
78
+ throw error;
79
+ }
80
+ };
81
+
82
+ export const getStoresByIdCustomersApp = async function (this: WashdayClientInstance, id: string): Promise<{ store: IStore }> {
83
+ try {
84
+ const config = {
85
+ headers: { Authorization: `Bearer ${this.apiToken}` }
86
+ };
87
+ const response = await axiosInstance.get(`${GET_STORES_WASHDAY_APP}/${id}`, config);
88
+ return response.data?.data?.store || [];
89
+ } catch (error) {
90
+ console.error('Error fetching getStoresByIdCustomersApp:', error);
91
+ throw error;
92
+ }
93
+ };