@smess/networking 1.2.0 → 2.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 (317) hide show
  1. package/CHANGELOG.md +221 -0
  2. package/README.md +178 -111
  3. package/dist/core/body.d.ts +10 -0
  4. package/dist/core/body.d.ts.map +1 -0
  5. package/dist/core/body.js +22 -0
  6. package/dist/core/body.js.map +1 -0
  7. package/dist/core/client.d.ts +74 -0
  8. package/dist/core/client.d.ts.map +1 -0
  9. package/dist/core/client.js +124 -0
  10. package/dist/core/client.js.map +1 -0
  11. package/dist/core/decoders.d.ts +8 -0
  12. package/dist/core/decoders.d.ts.map +1 -0
  13. package/dist/core/decoders.js +26 -0
  14. package/dist/core/decoders.js.map +1 -0
  15. package/dist/core/endpoint.d.ts +69 -0
  16. package/dist/core/endpoint.d.ts.map +1 -0
  17. package/dist/core/endpoint.js +6 -0
  18. package/dist/core/endpoint.js.map +1 -0
  19. package/dist/core/hosts.d.ts +27 -0
  20. package/dist/core/hosts.d.ts.map +1 -0
  21. package/dist/core/hosts.js +24 -0
  22. package/dist/core/hosts.js.map +1 -0
  23. package/dist/core/pagination.d.ts +33 -0
  24. package/dist/core/pagination.d.ts.map +1 -0
  25. package/dist/core/pagination.js +23 -0
  26. package/dist/core/pagination.js.map +1 -0
  27. package/dist/core/pipeline.d.ts +25 -0
  28. package/dist/core/pipeline.d.ts.map +1 -0
  29. package/dist/core/pipeline.js +12 -0
  30. package/dist/core/pipeline.js.map +1 -0
  31. package/dist/core/retry.d.ts +18 -0
  32. package/dist/core/retry.d.ts.map +1 -0
  33. package/dist/core/retry.js +47 -0
  34. package/dist/core/retry.js.map +1 -0
  35. package/dist/core/transport.d.ts +30 -0
  36. package/dist/core/transport.d.ts.map +1 -0
  37. package/dist/core/transport.js +73 -0
  38. package/dist/core/transport.js.map +1 -0
  39. package/dist/core/types.d.ts +24 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/types.js +3 -0
  42. package/dist/core/types.js.map +1 -0
  43. package/dist/core/url.d.ts +15 -0
  44. package/dist/core/url.d.ts.map +1 -0
  45. package/dist/core/url.js +46 -0
  46. package/dist/core/url.js.map +1 -0
  47. package/dist/errors/parse-error-body.d.ts +20 -0
  48. package/dist/errors/parse-error-body.d.ts.map +1 -0
  49. package/dist/errors/parse-error-body.js +73 -0
  50. package/dist/errors/parse-error-body.js.map +1 -0
  51. package/dist/errors/smess-api-error.d.ts +70 -0
  52. package/dist/errors/smess-api-error.d.ts.map +1 -0
  53. package/dist/errors/smess-api-error.js +84 -0
  54. package/dist/errors/smess-api-error.js.map +1 -0
  55. package/dist/index.d.ts +27 -25
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +15 -29
  58. package/dist/index.js.map +1 -0
  59. package/dist/modules/authentication/index.d.ts +89 -0
  60. package/dist/modules/authentication/index.d.ts.map +1 -0
  61. package/dist/modules/authentication/index.js +128 -0
  62. package/dist/modules/authentication/index.js.map +1 -0
  63. package/dist/modules/campaign/index.d.ts +212 -0
  64. package/dist/modules/campaign/index.d.ts.map +1 -0
  65. package/dist/modules/campaign/index.js +193 -0
  66. package/dist/modules/campaign/index.js.map +1 -0
  67. package/dist/modules/campaign/types.d.ts +562 -0
  68. package/dist/modules/campaign/types.d.ts.map +1 -0
  69. package/dist/modules/campaign/types.js +2 -0
  70. package/dist/modules/campaign/types.js.map +1 -0
  71. package/dist/modules/danara/index.d.ts +153 -0
  72. package/dist/modules/danara/index.d.ts.map +1 -0
  73. package/dist/modules/danara/index.js +144 -0
  74. package/dist/modules/danara/index.js.map +1 -0
  75. package/dist/modules/danara/types.d.ts +479 -0
  76. package/dist/modules/danara/types.d.ts.map +1 -0
  77. package/dist/modules/danara/types.js +2 -0
  78. package/dist/modules/danara/types.js.map +1 -0
  79. package/dist/modules/messenger/index.d.ts +92 -0
  80. package/dist/modules/messenger/index.d.ts.map +1 -0
  81. package/dist/modules/messenger/index.js +44 -0
  82. package/dist/modules/messenger/index.js.map +1 -0
  83. package/dist/modules/smeup-file/index.d.ts +27 -0
  84. package/dist/modules/smeup-file/index.d.ts.map +1 -0
  85. package/dist/modules/smeup-file/index.js +17 -0
  86. package/dist/modules/smeup-file/index.js.map +1 -0
  87. package/dist/modules/sso/index.d.ts +40 -0
  88. package/dist/modules/sso/index.d.ts.map +1 -0
  89. package/dist/modules/sso/index.js +41 -0
  90. package/dist/modules/sso/index.js.map +1 -0
  91. package/dist/rx/index.d.ts +11 -0
  92. package/dist/rx/index.d.ts.map +1 -0
  93. package/dist/rx/index.js +20 -0
  94. package/dist/rx/index.js.map +1 -0
  95. package/dist/session/auth-middleware.d.ts +27 -0
  96. package/dist/session/auth-middleware.d.ts.map +1 -0
  97. package/dist/session/auth-middleware.js +122 -0
  98. package/dist/session/auth-middleware.js.map +1 -0
  99. package/dist/session/jwt.d.ts +20 -0
  100. package/dist/session/jwt.d.ts.map +1 -0
  101. package/dist/session/jwt.js +25 -0
  102. package/dist/session/jwt.js.map +1 -0
  103. package/dist/session/stores.d.ts +19 -0
  104. package/dist/session/stores.d.ts.map +1 -0
  105. package/dist/session/stores.js +103 -0
  106. package/dist/session/stores.js.map +1 -0
  107. package/dist/session/types.d.ts +28 -0
  108. package/dist/session/types.d.ts.map +1 -0
  109. package/dist/session/types.js +2 -0
  110. package/dist/session/types.js.map +1 -0
  111. package/package.json +84 -30
  112. package/dist/core/axios.d.ts +0 -51
  113. package/dist/core/axios.js +0 -65
  114. package/dist/core/axios.observable.d.ts +0 -11
  115. package/dist/core/axios.observable.js +0 -58
  116. package/dist/core/base.provider.advanced.test.d.ts +0 -1
  117. package/dist/core/base.provider.advanced.test.js +0 -29
  118. package/dist/core/base.provider.d.ts +0 -15
  119. package/dist/core/base.provider.js +0 -13
  120. package/dist/core/base.provider.test.d.ts +0 -1
  121. package/dist/core/base.provider.test.js +0 -36
  122. package/dist/core/base.service.wrapper.advanced.test.d.ts +0 -1
  123. package/dist/core/base.service.wrapper.advanced.test.js +0 -39
  124. package/dist/core/base.service.wrapper.d.ts +0 -7
  125. package/dist/core/base.service.wrapper.js +0 -11
  126. package/dist/core/base.service.wrapper.test.d.ts +0 -1
  127. package/dist/core/base.service.wrapper.test.js +0 -25
  128. package/dist/core/rx.http.service.d.ts +0 -51
  129. package/dist/core/rx.http.service.js +0 -65
  130. package/dist/services/auth.service.d.ts +0 -65
  131. package/dist/services/auth.service.js +0 -197
  132. package/dist/services/auth.service.test.d.ts +0 -1
  133. package/dist/services/auth.service.test.js +0 -334
  134. package/dist/services/cache.service.d.ts +0 -31
  135. package/dist/services/cache.service.js +0 -77
  136. package/dist/services/cache.service.test.d.ts +0 -1
  137. package/dist/services/cache.service.test.js +0 -88
  138. package/dist/services/customer.service.d.ts +0 -211
  139. package/dist/services/customer.service.js +0 -128
  140. package/dist/services/customer.service.test.d.ts +0 -1
  141. package/dist/services/customer.service.test.js +0 -430
  142. package/dist/services/employee.service.d.ts +0 -73
  143. package/dist/services/employee.service.js +0 -74
  144. package/dist/services/employee.service.test.d.ts +0 -1
  145. package/dist/services/employee.service.test.js +0 -127
  146. package/dist/services/logger.service.d.ts +0 -31
  147. package/dist/services/logger.service.js +0 -93
  148. package/dist/services/logger.service.test.d.ts +0 -1
  149. package/dist/services/logger.service.test.js +0 -31
  150. package/dist/services/order.service.d.ts +0 -73
  151. package/dist/services/order.service.js +0 -97
  152. package/dist/services/order.service.test.d.ts +0 -1
  153. package/dist/services/order.service.test.js +0 -163
  154. package/dist/services/product.service.d.ts +0 -21
  155. package/dist/services/product.service.js +0 -42
  156. package/dist/services/product.service.test.d.ts +0 -1
  157. package/dist/services/product.service.test.js +0 -61
  158. package/dist/services/smess.service.d.ts +0 -36
  159. package/dist/services/smess.service.js +0 -128
  160. package/dist/services/smess.service.test.d.ts +0 -1
  161. package/dist/services/smess.service.test.js +0 -103
  162. package/dist/services/store.cart.service.d.ts +0 -158
  163. package/dist/services/store.cart.service.js +0 -177
  164. package/dist/services/store.cart.service.test.d.ts +0 -1
  165. package/dist/services/store.cart.service.test.js +0 -394
  166. package/dist/services/store.product.service.d.ts +0 -124
  167. package/dist/services/store.product.service.js +0 -102
  168. package/dist/services/store.product.service.test.d.ts +0 -1
  169. package/dist/services/store.product.service.test.js +0 -319
  170. package/dist/services/store.service.d.ts +0 -79
  171. package/dist/services/store.service.js +0 -235
  172. package/dist/services/store.service.test.d.ts +0 -1
  173. package/dist/services/store.service.test.js +0 -274
  174. package/dist/services/storefront.cart.service.d.ts +0 -73
  175. package/dist/services/storefront.cart.service.js +0 -167
  176. package/dist/services/storefront.cart.service.test.d.ts +0 -1
  177. package/dist/services/storefront.cart.service.test.js +0 -211
  178. package/dist/services/storefront.checkout.service.d.ts +0 -62
  179. package/dist/services/storefront.checkout.service.js +0 -75
  180. package/dist/services/storefront.checkout.service.test.d.ts +0 -1
  181. package/dist/services/storefront.checkout.service.test.js +0 -158
  182. package/dist/services/storefront.customer.metadata.service.d.ts +0 -91
  183. package/dist/services/storefront.customer.metadata.service.js +0 -225
  184. package/dist/services/storefront.customer.metadata.service.test.d.ts +0 -1
  185. package/dist/services/storefront.customer.metadata.service.test.js +0 -271
  186. package/dist/services/storefront.order.service.d.ts +0 -45
  187. package/dist/services/storefront.order.service.js +0 -99
  188. package/dist/services/storefront.order.service.test.d.ts +0 -1
  189. package/dist/services/storefront.order.service.test.js +0 -158
  190. package/dist/services/storefront.product.service.d.ts +0 -52
  191. package/dist/services/storefront.product.service.js +0 -75
  192. package/dist/services/storefront.product.service.test.d.ts +0 -1
  193. package/dist/services/storefront.product.service.test.js +0 -120
  194. package/dist/services/storefront.store.service.d.ts +0 -54
  195. package/dist/services/storefront.store.service.js +0 -142
  196. package/dist/services/storefront.store.service.test.d.ts +0 -1
  197. package/dist/services/storefront.store.service.test.js +0 -90
  198. package/dist/services/user.service.d.ts +0 -16
  199. package/dist/services/user.service.js +0 -37
  200. package/dist/services/user.service.test.d.ts +0 -1
  201. package/dist/services/user.service.test.js +0 -52
  202. package/dist/services/utils/withAuthReset.d.ts +0 -3
  203. package/dist/services/utils/withAuthReset.js +0 -8
  204. package/dist/src/core/axios.d.ts +0 -51
  205. package/dist/src/core/axios.js +0 -65
  206. package/dist/src/core/axios.observable.d.ts +0 -11
  207. package/dist/src/core/axios.observable.js +0 -58
  208. package/dist/src/core/base.provider.advanced.test.d.ts +0 -1
  209. package/dist/src/core/base.provider.advanced.test.js +0 -29
  210. package/dist/src/core/base.provider.d.ts +0 -15
  211. package/dist/src/core/base.provider.js +0 -13
  212. package/dist/src/core/base.provider.test.d.ts +0 -1
  213. package/dist/src/core/base.provider.test.js +0 -36
  214. package/dist/src/core/base.service.wrapper.advanced.test.d.ts +0 -1
  215. package/dist/src/core/base.service.wrapper.advanced.test.js +0 -39
  216. package/dist/src/core/base.service.wrapper.d.ts +0 -7
  217. package/dist/src/core/base.service.wrapper.js +0 -11
  218. package/dist/src/core/base.service.wrapper.test.d.ts +0 -1
  219. package/dist/src/core/base.service.wrapper.test.js +0 -25
  220. package/dist/src/core/rx.http.service.d.ts +0 -51
  221. package/dist/src/core/rx.http.service.js +0 -65
  222. package/dist/src/index.d.ts +0 -25
  223. package/dist/src/index.js +0 -29
  224. package/dist/src/services/auth.service.d.ts +0 -65
  225. package/dist/src/services/auth.service.js +0 -197
  226. package/dist/src/services/auth.service.test.d.ts +0 -1
  227. package/dist/src/services/auth.service.test.js +0 -334
  228. package/dist/src/services/cache.service.d.ts +0 -31
  229. package/dist/src/services/cache.service.js +0 -77
  230. package/dist/src/services/cache.service.test.d.ts +0 -1
  231. package/dist/src/services/cache.service.test.js +0 -88
  232. package/dist/src/services/customer.service.d.ts +0 -199
  233. package/dist/src/services/customer.service.js +0 -114
  234. package/dist/src/services/customer.service.test.d.ts +0 -1
  235. package/dist/src/services/customer.service.test.js +0 -430
  236. package/dist/src/services/employee.service.d.ts +0 -73
  237. package/dist/src/services/employee.service.js +0 -74
  238. package/dist/src/services/employee.service.test.d.ts +0 -1
  239. package/dist/src/services/employee.service.test.js +0 -127
  240. package/dist/src/services/logger.service.d.ts +0 -31
  241. package/dist/src/services/logger.service.js +0 -93
  242. package/dist/src/services/logger.service.test.d.ts +0 -1
  243. package/dist/src/services/logger.service.test.js +0 -31
  244. package/dist/src/services/order.service.d.ts +0 -73
  245. package/dist/src/services/order.service.js +0 -97
  246. package/dist/src/services/order.service.test.d.ts +0 -1
  247. package/dist/src/services/order.service.test.js +0 -163
  248. package/dist/src/services/product.service.d.ts +0 -21
  249. package/dist/src/services/product.service.js +0 -42
  250. package/dist/src/services/product.service.test.d.ts +0 -1
  251. package/dist/src/services/product.service.test.js +0 -61
  252. package/dist/src/services/smess.service.d.ts +0 -36
  253. package/dist/src/services/smess.service.js +0 -128
  254. package/dist/src/services/smess.service.test.d.ts +0 -1
  255. package/dist/src/services/smess.service.test.js +0 -103
  256. package/dist/src/services/store.cart.service.d.ts +0 -158
  257. package/dist/src/services/store.cart.service.js +0 -177
  258. package/dist/src/services/store.cart.service.test.d.ts +0 -1
  259. package/dist/src/services/store.cart.service.test.js +0 -394
  260. package/dist/src/services/store.product.service.d.ts +0 -124
  261. package/dist/src/services/store.product.service.js +0 -102
  262. package/dist/src/services/store.product.service.test.d.ts +0 -1
  263. package/dist/src/services/store.product.service.test.js +0 -319
  264. package/dist/src/services/store.service.d.ts +0 -79
  265. package/dist/src/services/store.service.js +0 -235
  266. package/dist/src/services/store.service.test.d.ts +0 -1
  267. package/dist/src/services/store.service.test.js +0 -274
  268. package/dist/src/services/storefront.cart.service.d.ts +0 -73
  269. package/dist/src/services/storefront.cart.service.js +0 -167
  270. package/dist/src/services/storefront.cart.service.test.d.ts +0 -1
  271. package/dist/src/services/storefront.cart.service.test.js +0 -211
  272. package/dist/src/services/storefront.checkout.service.d.ts +0 -62
  273. package/dist/src/services/storefront.checkout.service.js +0 -75
  274. package/dist/src/services/storefront.checkout.service.test.d.ts +0 -1
  275. package/dist/src/services/storefront.checkout.service.test.js +0 -158
  276. package/dist/src/services/storefront.customer.metadata.service.d.ts +0 -91
  277. package/dist/src/services/storefront.customer.metadata.service.js +0 -225
  278. package/dist/src/services/storefront.customer.metadata.service.test.d.ts +0 -1
  279. package/dist/src/services/storefront.customer.metadata.service.test.js +0 -271
  280. package/dist/src/services/storefront.order.service.d.ts +0 -45
  281. package/dist/src/services/storefront.order.service.js +0 -99
  282. package/dist/src/services/storefront.order.service.test.d.ts +0 -1
  283. package/dist/src/services/storefront.order.service.test.js +0 -158
  284. package/dist/src/services/storefront.product.service.d.ts +0 -52
  285. package/dist/src/services/storefront.product.service.js +0 -75
  286. package/dist/src/services/storefront.product.service.test.d.ts +0 -1
  287. package/dist/src/services/storefront.product.service.test.js +0 -120
  288. package/dist/src/services/storefront.store.service.d.ts +0 -52
  289. package/dist/src/services/storefront.store.service.js +0 -140
  290. package/dist/src/services/storefront.store.service.test.d.ts +0 -1
  291. package/dist/src/services/storefront.store.service.test.js +0 -90
  292. package/dist/src/services/user.service.d.ts +0 -16
  293. package/dist/src/services/user.service.js +0 -37
  294. package/dist/src/services/user.service.test.d.ts +0 -1
  295. package/dist/src/services/user.service.test.js +0 -52
  296. package/dist/src/services/utils/withAuthReset.d.ts +0 -3
  297. package/dist/src/services/utils/withAuthReset.js +0 -8
  298. package/dist/src/types/types.d.ts +0 -93
  299. package/dist/src/types/types.js +0 -82
  300. package/dist/src/types/types.test.d.ts +0 -1
  301. package/dist/src/types/types.test.js +0 -25
  302. package/dist/src/utils/cache-import.d.ts +0 -3
  303. package/dist/src/utils/cache-import.js +0 -2
  304. package/dist/src/utils/networking-import.d.ts +0 -4
  305. package/dist/src/utils/networking-import.js +0 -3
  306. package/dist/src/utils/rxjs-import.d.ts +0 -5
  307. package/dist/src/utils/rxjs-import.js +0 -5
  308. package/dist/types/types.d.ts +0 -96
  309. package/dist/types/types.js +0 -82
  310. package/dist/types/types.test.d.ts +0 -1
  311. package/dist/types/types.test.js +0 -25
  312. package/dist/utils/cache-import.d.ts +0 -3
  313. package/dist/utils/cache-import.js +0 -2
  314. package/dist/utils/networking-import.d.ts +0 -4
  315. package/dist/utils/networking-import.js +0 -3
  316. package/dist/utils/rxjs-import.d.ts +0 -5
  317. package/dist/utils/rxjs-import.js +0 -5
@@ -1,177 +0,0 @@
1
- import { Accept, SMESSHeader, SmessService } from "./smess.service";
2
- import { BehaviorSubject } from "rxjs";
3
- import { tap } from "rxjs/operators";
4
- export class StoreCartProvider {
5
- constructor(config, target, $cartHash, $storeId) {
6
- this.config = config;
7
- this.target = target;
8
- this.$cartHash = $cartHash;
9
- this.$storeId = $storeId;
10
- }
11
- get baseURL() {
12
- return this.config.version
13
- ? `${this.config.baseUrl}/${this.config.version}`
14
- : this.config.baseUrl;
15
- }
16
- get path() {
17
- switch (this.target) {
18
- case "cart-get":
19
- return "/store/cart";
20
- case "cart-update":
21
- return "/store/cart";
22
- case "cart-add-item":
23
- return "/store/cart/items";
24
- case "cart-update-item":
25
- return "/store/cart/items/\${id}";
26
- case "cart-delete-item":
27
- return "/store/cart/items/\${id}";
28
- case "cart-delete-all-items":
29
- return "/store/cart/items";
30
- case "cart-batch-items":
31
- return "/store/cart/items/batch";
32
- default:
33
- return "/store/cart";
34
- }
35
- }
36
- get method() {
37
- switch (this.target) {
38
- case "cart-get":
39
- return "GET";
40
- case "cart-update":
41
- return "PUT";
42
- case "cart-add-item":
43
- return "POST";
44
- case "cart-update-item":
45
- return "PUT";
46
- case "cart-delete-item":
47
- return "DELETE";
48
- case "cart-delete-all-items":
49
- return "DELETE";
50
- case "cart-batch-items":
51
- return "POST";
52
- default:
53
- return "GET";
54
- }
55
- }
56
- get headers() {
57
- let headers = SmessService.getHeaders(Accept.V1, null);
58
- if (this.config.clientId) {
59
- headers[SMESSHeader.ClientId] = this.config.clientId;
60
- }
61
- if (this.config.apiKey) {
62
- headers[SMESSHeader.ApiKey] = this.config.apiKey;
63
- }
64
- const filteredHeaders = SmessService.filterHeaders(headers);
65
- // Add X-Nonce-Token header if cartHash is available
66
- if (this.$cartHash.value) {
67
- filteredHeaders["X-Nonce-Token"] = this.$cartHash.value;
68
- }
69
- // Add X-Store-Id header if storeId is available
70
- if (this.$storeId.value) {
71
- filteredHeaders["X-Store-Id"] = this.$storeId.value;
72
- }
73
- return filteredHeaders;
74
- }
75
- getPath(...queryParams) {
76
- let definedPath = this.path;
77
- const params = definedPath.match(/\$\{(.+?)\}/g);
78
- params?.forEach((value, index) => {
79
- definedPath = definedPath.replace(value, String(queryParams[index]));
80
- });
81
- return definedPath;
82
- }
83
- }
84
- export class StoreCartService {
85
- constructor(config, $storeId) {
86
- this.config = config;
87
- this.$cartHash = new BehaviorSubject(null);
88
- // Use the provided BehaviorSubject or create a new one
89
- this.$storeId = $storeId || new BehaviorSubject(null);
90
- }
91
- // Getter to access the current cart hash
92
- get currentCartHash() {
93
- return this.$cartHash.value;
94
- }
95
- // Getter to access the cart hash as observable
96
- get cartHash$() {
97
- return this.$cartHash;
98
- }
99
- // Getter to access the current store ID
100
- get currentStoreId() {
101
- return this.$storeId.value;
102
- }
103
- // Getter to access the store ID as observable
104
- get storeId$() {
105
- return this.$storeId;
106
- }
107
- // Method to update the store ID
108
- setStoreId(storeId) {
109
- this.$storeId.next(storeId);
110
- }
111
- provider(target) {
112
- const targetWrapper = new StoreCartProvider(this.config, target, this.$cartHash, this.$storeId);
113
- return new SmessService(targetWrapper);
114
- }
115
- /**
116
- * Update the cart hash from cart response
117
- */
118
- updateCartHash(result) {
119
- if (result.hasSuccess && result.response) {
120
- const response = result.response;
121
- // Try to extract cartHash from different possible structures
122
- const cartHash = response.data?.cartHash || response.cartHash;
123
- if (cartHash) {
124
- this.$cartHash.next(cartHash);
125
- }
126
- }
127
- }
128
- /**
129
- * Get the current cart
130
- * GET api/v1/store/cart
131
- */
132
- getCart() {
133
- return this.provider("cart-get").request().pipe(tap((result) => this.updateCartHash(result)));
134
- }
135
- /**
136
- * Update cart (e.g., add notes, apply coupon)
137
- * PUT api/v1/store/cart
138
- */
139
- updateCart(payload) {
140
- return this.provider("cart-update").request(payload).pipe(tap((result) => this.updateCartHash(result)));
141
- }
142
- /**
143
- * Add item to cart
144
- * POST api/v1/store/cart/items
145
- */
146
- addItem(payload) {
147
- return this.provider("cart-add-item").request(payload).pipe(tap((result) => this.updateCartHash(result)));
148
- }
149
- /**
150
- * Batch create/update items in cart
151
- * POST api/v1/store/cart/items/batch
152
- */
153
- batchItems(payload) {
154
- return this.provider("cart-batch-items").request(payload).pipe(tap((result) => this.updateCartHash(result)));
155
- }
156
- /**
157
- * Update item quantity in cart
158
- * PUT api/v1/store/cart/items/{id}
159
- */
160
- updateItemQuantity(itemId, payload) {
161
- return this.provider("cart-update-item").request(payload, undefined, itemId).pipe(tap((result) => this.updateCartHash(result)));
162
- }
163
- /**
164
- * Delete item from cart
165
- * DELETE api/v1/store/cart/items/{id}
166
- */
167
- deleteItem(itemId) {
168
- return this.provider("cart-delete-item").request(undefined, undefined, itemId);
169
- }
170
- /**
171
- * Delete all items from cart
172
- * DELETE api/v1/store/cart/items
173
- */
174
- deleteAllItems() {
175
- return this.provider("cart-delete-all-items").request();
176
- }
177
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,394 +0,0 @@
1
- import { StoreCartService, StoreCartProvider, } from "./store.cart.service";
2
- import { NetworkingUIEventWrapped, AlertModel, } from "../types/types";
3
- import { BehaviorSubject, of } from "rxjs";
4
- describe("StoreCartService", () => {
5
- const config = {
6
- baseUrl: "https://api.example.com",
7
- isProd: false,
8
- clientId: "test-client-id",
9
- apiKey: "test-api-key",
10
- };
11
- let service;
12
- beforeEach(() => {
13
- service = new StoreCartService(config);
14
- });
15
- it("should initialize with null cartHash and storeId", () => {
16
- expect(service.currentCartHash).toBe(null);
17
- expect(service.cartHash$.value).toBe(null);
18
- expect(service.currentStoreId).toBe(null);
19
- expect(service.storeId$.value).toBe(null);
20
- });
21
- it("should initialize with provided storeId BehaviorSubject", () => {
22
- const storeId = "store-123";
23
- const $storeId = new BehaviorSubject(storeId);
24
- const serviceWithStore = new StoreCartService(config, $storeId);
25
- expect(serviceWithStore.currentStoreId).toBe(storeId);
26
- expect(serviceWithStore.storeId$.value).toBe(storeId);
27
- });
28
- it("should update storeId dynamically", () => {
29
- expect(service.currentStoreId).toBe(null);
30
- service.setStoreId("store-456");
31
- expect(service.currentStoreId).toBe("store-456");
32
- expect(service.storeId$.value).toBe("store-456");
33
- });
34
- describe("getCart", () => {
35
- it("should get cart successfully and update cartHash", async () => {
36
- const cart = {
37
- dateCreated: "2025-10-14 12:56:31",
38
- dateModified: "2025-10-14 12:56:31",
39
- discountTotal: 0,
40
- discountTax: 0,
41
- shippingTotal: 0,
42
- shippingTax: 0,
43
- cartTax: 0,
44
- total: 20.0,
45
- totalTax: 0,
46
- customerId: "cust-123",
47
- billingInformation: null,
48
- shippingInformation: null,
49
- paymentMethod: "cash",
50
- deliveryType: "pickup",
51
- transactionId: null,
52
- customerIpAddress: "172.18.0.1",
53
- customerUserAgent: "Test Agent",
54
- customerNote: null,
55
- cartHash: "test-hash-123",
56
- cartItems: [
57
- {
58
- id: "item-1",
59
- productId: "prod-1",
60
- name: "Test Product",
61
- quantity: 2,
62
- price: 10.0,
63
- total: 20.0,
64
- },
65
- ],
66
- paymentUrl: null,
67
- store: null,
68
- };
69
- jest.spyOn(service, "provider").mockReturnValue({
70
- request: () => of(NetworkingUIEventWrapped.succeeded(cart)),
71
- });
72
- const result = await service.getCart().toPromise();
73
- expect(result?.hasSuccess).toBe(true);
74
- expect(result?.response).toEqual(cart);
75
- expect(service.currentCartHash).toBe("test-hash-123");
76
- });
77
- it("should handle getCart error", async () => {
78
- jest.spyOn(service, "provider").mockReturnValue({
79
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
80
- });
81
- const result = await service.getCart().toPromise();
82
- expect(result?.hasFailed).toBe(true);
83
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
84
- });
85
- });
86
- describe("updateCart", () => {
87
- it("should update cart successfully", async () => {
88
- const payload = {
89
- status: "submitted",
90
- customer_note: "Customer Note Example",
91
- customer_id: "f1df6e9a-0160-11f0-82c2-6cac1a7e2953",
92
- payment_method: "bank_transfer",
93
- delivery_type: "delivery",
94
- billing_information: {
95
- email: "billing@example.com",
96
- phone_number: "+1-555-111-2222",
97
- street: "456 Market Street",
98
- city: "san_francisco",
99
- postal_code: "94103",
100
- state: "ca",
101
- country: "us",
102
- },
103
- shipping_information: {
104
- email: "john.doe@example.com",
105
- phone_number: "+1-555-123-4567",
106
- street: "123 Main Street",
107
- city: "san_francisco",
108
- postal_code: "94105",
109
- state: "ca",
110
- country: "us",
111
- },
112
- };
113
- const cart = {
114
- dateCreated: "2025-10-14 12:56:31",
115
- dateModified: "2025-10-14 12:56:31",
116
- discountTotal: 0,
117
- discountTax: 0,
118
- shippingTotal: 0,
119
- shippingTax: 0,
120
- cartTax: 0,
121
- total: 0,
122
- totalTax: 0,
123
- customerId: null,
124
- billingInformation: null,
125
- shippingInformation: null,
126
- paymentMethod: "cash",
127
- deliveryType: "pickup",
128
- transactionId: null,
129
- customerIpAddress: "172.18.0.1",
130
- customerUserAgent: "Test Agent",
131
- customerNote: "Please deliver in the evening",
132
- cartHash: "test-hash",
133
- cartItems: [],
134
- paymentUrl: null,
135
- store: null,
136
- };
137
- jest.spyOn(service, "provider").mockReturnValue({
138
- request: () => of(NetworkingUIEventWrapped.succeeded(cart)),
139
- });
140
- const result = await service.updateCart(payload).toPromise();
141
- expect(result?.hasSuccess).toBe(true);
142
- expect(result?.response).toEqual(cart);
143
- });
144
- it("should handle updateCart error", async () => {
145
- const payload = {
146
- status: "invalid_status",
147
- };
148
- jest.spyOn(service, "provider").mockReturnValue({
149
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
150
- });
151
- const result = await service.updateCart(payload).toPromise();
152
- expect(result?.hasFailed).toBe(true);
153
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
154
- });
155
- });
156
- describe("addItem", () => {
157
- it("should add item to cart successfully", async () => {
158
- const payload = {
159
- product_id: "prod-123",
160
- quantity: 3,
161
- };
162
- const cart = {
163
- dateCreated: "2025-10-14 12:56:31",
164
- dateModified: "2025-10-14 12:56:31",
165
- discountTotal: 0,
166
- discountTax: 0,
167
- shippingTotal: 0,
168
- shippingTax: 0,
169
- cartTax: 0,
170
- total: 45.0,
171
- totalTax: 0,
172
- customerId: null,
173
- billingInformation: null,
174
- shippingInformation: null,
175
- paymentMethod: "cash",
176
- deliveryType: "pickup",
177
- transactionId: null,
178
- customerIpAddress: "172.18.0.1",
179
- customerUserAgent: "Test Agent",
180
- customerNote: null,
181
- cartHash: "test-hash",
182
- cartItems: [
183
- {
184
- id: "item-1",
185
- productId: "prod-123",
186
- quantity: 3,
187
- price: 15.0,
188
- total: 45.0,
189
- },
190
- ],
191
- paymentUrl: null,
192
- store: null,
193
- };
194
- jest.spyOn(service, "provider").mockReturnValue({
195
- request: () => of(NetworkingUIEventWrapped.succeeded(cart)),
196
- });
197
- const result = await service.addItem(payload).toPromise();
198
- expect(result?.hasSuccess).toBe(true);
199
- expect(result?.response).toEqual(cart);
200
- });
201
- it("should handle addItem error", async () => {
202
- const payload = {
203
- product_id: "prod-999",
204
- quantity: 1,
205
- };
206
- jest.spyOn(service, "provider").mockReturnValue({
207
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
208
- });
209
- const result = await service.addItem(payload).toPromise();
210
- expect(result?.hasFailed).toBe(true);
211
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
212
- });
213
- });
214
- describe("batchItems", () => {
215
- it("should batch create/update items successfully and update cartHash", async () => {
216
- const payload = {
217
- create: [
218
- { product_id: "prod-111", quantity: 2 },
219
- { product_id: "prod-222", quantity: 1 },
220
- ],
221
- update: [
222
- { product_id: "prod-333", quantity: 5 },
223
- ],
224
- };
225
- const cart = {
226
- dateCreated: "2025-10-14 12:56:31",
227
- dateModified: "2025-10-14 12:56:31",
228
- discountTotal: 0,
229
- discountTax: 0,
230
- shippingTotal: 0,
231
- shippingTax: 0,
232
- cartTax: 0,
233
- total: 100.0,
234
- totalTax: 0,
235
- customerId: null,
236
- billingInformation: null,
237
- shippingInformation: null,
238
- paymentMethod: "cash",
239
- deliveryType: "pickup",
240
- transactionId: null,
241
- customerIpAddress: "172.18.0.1",
242
- customerUserAgent: "Test Agent",
243
- customerNote: null,
244
- cartHash: "hash-batch-123",
245
- cartItems: [
246
- { id: "item-1", productId: "prod-111", quantity: 2, price: 10, total: 20 },
247
- { id: "item-2", productId: "prod-222", quantity: 1, price: 30, total: 30 },
248
- { id: "item-3", productId: "prod-333", quantity: 5, price: 10, total: 50 },
249
- ],
250
- paymentUrl: null,
251
- store: null,
252
- };
253
- jest.spyOn(service, "provider").mockReturnValue({
254
- request: () => of(NetworkingUIEventWrapped.succeeded(cart)),
255
- });
256
- const result = await service.batchItems(payload).toPromise();
257
- expect(result?.hasSuccess).toBe(true);
258
- expect(result?.response).toEqual(cart);
259
- expect(service.currentCartHash).toBe("hash-batch-123");
260
- });
261
- it("should handle batchItems error", async () => {
262
- const payload = {
263
- create: [{ product_id: "invalid", quantity: 0 }],
264
- };
265
- jest.spyOn(service, "provider").mockReturnValue({
266
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
267
- });
268
- const result = await service.batchItems(payload).toPromise();
269
- expect(result?.hasFailed).toBe(true);
270
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
271
- });
272
- });
273
- describe("updateItemQuantity", () => {
274
- it("should update item quantity successfully", async () => {
275
- const itemId = "item-123";
276
- const payload = {
277
- quantity: 5,
278
- };
279
- const cart = {
280
- dateCreated: "2025-10-14 12:56:31",
281
- dateModified: "2025-10-14 12:56:31",
282
- discountTotal: 0,
283
- discountTax: 0,
284
- shippingTotal: 0,
285
- shippingTax: 0,
286
- cartTax: 0,
287
- total: 75.0,
288
- totalTax: 0,
289
- customerId: null,
290
- billingInformation: null,
291
- shippingInformation: null,
292
- paymentMethod: "cash",
293
- deliveryType: "pickup",
294
- transactionId: null,
295
- customerIpAddress: "172.18.0.1",
296
- customerUserAgent: "Test Agent",
297
- customerNote: null,
298
- cartHash: "test-hash",
299
- cartItems: [
300
- {
301
- id: itemId,
302
- productId: "prod-123",
303
- quantity: 5,
304
- price: 15.0,
305
- total: 75.0,
306
- },
307
- ],
308
- paymentUrl: null,
309
- store: null,
310
- };
311
- jest.spyOn(service, "provider").mockReturnValue({
312
- request: () => of(NetworkingUIEventWrapped.succeeded(cart)),
313
- });
314
- const result = await service.updateItemQuantity(itemId, payload).toPromise();
315
- expect(result?.hasSuccess).toBe(true);
316
- expect(result?.response).toEqual(cart);
317
- });
318
- it("should handle updateItemQuantity error", async () => {
319
- const itemId = "item-999";
320
- const payload = {
321
- quantity: 5,
322
- };
323
- jest.spyOn(service, "provider").mockReturnValue({
324
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
325
- });
326
- const result = await service.updateItemQuantity(itemId, payload).toPromise();
327
- expect(result?.hasFailed).toBe(true);
328
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
329
- });
330
- });
331
- describe("deleteItem", () => {
332
- it("should delete item from cart successfully", async () => {
333
- const itemId = "item-123";
334
- jest.spyOn(service, "provider").mockReturnValue({
335
- request: () => of(NetworkingUIEventWrapped.succeeded(undefined)),
336
- });
337
- const result = await service.deleteItem(itemId).toPromise();
338
- expect(result?.hasSuccess).toBe(true);
339
- });
340
- it("should handle deleteItem error", async () => {
341
- const itemId = "item-999";
342
- jest.spyOn(service, "provider").mockReturnValue({
343
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
344
- });
345
- const result = await service.deleteItem(itemId).toPromise();
346
- expect(result?.hasFailed).toBe(true);
347
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
348
- });
349
- });
350
- describe("deleteAllItems", () => {
351
- it("should delete all items from cart successfully", async () => {
352
- jest.spyOn(service, "provider").mockReturnValue({
353
- request: () => of(NetworkingUIEventWrapped.succeeded(undefined)),
354
- });
355
- const result = await service.deleteAllItems().toPromise();
356
- expect(result?.hasSuccess).toBe(true);
357
- });
358
- it("should handle deleteAllItems error", async () => {
359
- jest.spyOn(service, "provider").mockReturnValue({
360
- request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
361
- });
362
- const result = await service.deleteAllItems().toPromise();
363
- expect(result?.hasFailed).toBe(true);
364
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
365
- });
366
- });
367
- describe("headers", () => {
368
- it("should include X-Store-Id header when storeId is set", () => {
369
- const storeId = "store-123";
370
- const cartHash = "cart-hash-456";
371
- const $cartHashSubject = new BehaviorSubject(cartHash);
372
- const $storeIdSubject = new BehaviorSubject(storeId);
373
- const provider = new StoreCartProvider(config, "cart-get", $cartHashSubject, $storeIdSubject);
374
- const headers = provider.headers;
375
- expect(headers["X-Store-Id"]).toBe(storeId);
376
- expect(headers["X-Nonce-Token"]).toBe(cartHash);
377
- });
378
- it("should not include X-Store-Id header when storeId is null", () => {
379
- const $cartHashSubject = new BehaviorSubject(null);
380
- const $storeIdSubject = new BehaviorSubject(null);
381
- const provider = new StoreCartProvider(config, "cart-get", $cartHashSubject, $storeIdSubject);
382
- const headers = provider.headers;
383
- expect(headers["X-Store-Id"]).toBeUndefined();
384
- });
385
- it("should include X-Nonce-Token header when cartHash is set", () => {
386
- const cartHash = "cart-hash-789";
387
- const $cartHashSubject = new BehaviorSubject(cartHash);
388
- const $storeIdSubject = new BehaviorSubject(null);
389
- const provider = new StoreCartProvider(config, "cart-get", $cartHashSubject, $storeIdSubject);
390
- const headers = provider.headers;
391
- expect(headers["X-Nonce-Token"]).toBe(cartHash);
392
- });
393
- });
394
- });
@@ -1,124 +0,0 @@
1
- import { ProviderType, NetworkingConfig, NetworkingUIEventWrapped, HttpResponse } from "../types/types";
2
- import { SmessService } from "./smess.service";
3
- import { Observable } from "rxjs";
4
- export type StoreProductTarget = "featured-product-list" | "featured-product-list-by-store" | "product-category-list" | "product-get-by-id" | "product-collection" | "product-collection-by-store";
5
- export interface StoreProductCollectionRequest {
6
- page?: number;
7
- per_page?: number;
8
- search?: string;
9
- sort_by?: string;
10
- category?: string;
11
- group?: string;
12
- min_price?: number;
13
- max_price?: number;
14
- only_discounted?: boolean;
15
- unit?: string;
16
- supplier?: string;
17
- has_offer?: boolean;
18
- [key: string]: unknown;
19
- }
20
- export interface PaginationLinks {
21
- first: string;
22
- last: string;
23
- next?: string;
24
- prev?: string;
25
- }
26
- export interface StoreProduct {
27
- id: string;
28
- barcode: string;
29
- expiryDate: string | null;
30
- name: string;
31
- category: string;
32
- subCategory: string | null;
33
- vatInPercent: number;
34
- unit: string;
35
- volume: number | null;
36
- quantity: number;
37
- unitWeight: number | null;
38
- articleWeight: number | null;
39
- tareWeight: number | null;
40
- supplier: string | null;
41
- supplierCode: string | null;
42
- supplierItemName: string | null;
43
- picture: string;
44
- slug: string;
45
- internalCode: string;
46
- htmlDescription: string | null;
47
- inventory: boolean;
48
- quantityInStock: number;
49
- minimumStockQuantity: number;
50
- pricePurchase: number;
51
- priceToSell: number;
52
- discountInPercent: number;
53
- priceAfterDiscount: number;
54
- priceByWeight: boolean;
55
- [key: string]: unknown;
56
- }
57
- export interface StoreProductCollectionResponse {
58
- links: PaginationLinks;
59
- items: StoreProduct[];
60
- count: number;
61
- total: number;
62
- page: number;
63
- totalPage: number;
64
- perPage: number;
65
- metadata: unknown[];
66
- }
67
- export interface ProductCategory {
68
- name: string;
69
- numberOfProducts: number;
70
- image: string | null;
71
- }
72
- export declare class StoreProductProvider implements ProviderType {
73
- private readonly config;
74
- private readonly target;
75
- constructor(config: NetworkingConfig, target: StoreProductTarget);
76
- get baseURL(): string;
77
- get path(): string;
78
- get method(): string;
79
- get headers(): Record<string, string>;
80
- getPath(...queryParams: unknown[]): string;
81
- }
82
- export interface StoreProductServiceType {
83
- getFeaturedProductList(): Observable<NetworkingUIEventWrapped<HttpResponse>>;
84
- getFeaturedProductListByStore(storeId: string): Observable<NetworkingUIEventWrapped<HttpResponse>>;
85
- getProductCategoryList(): Observable<NetworkingUIEventWrapped<HttpResponse>>;
86
- getProductById(productId: string): Observable<NetworkingUIEventWrapped<HttpResponse>>;
87
- getProductCollection(payload?: StoreProductCollectionRequest): Observable<NetworkingUIEventWrapped<HttpResponse>>;
88
- getProductCollectionByStore(storeId: string, payload?: StoreProductCollectionRequest): Observable<NetworkingUIEventWrapped<HttpResponse>>;
89
- }
90
- export declare class StoreProductService implements StoreProductServiceType {
91
- private readonly config;
92
- constructor(config: NetworkingConfig);
93
- provider(target: StoreProductTarget): SmessService<StoreProductProvider>;
94
- /**
95
- * Get featured product list
96
- * GET /api/v1/store/featured-product-list
97
- */
98
- getFeaturedProductList(): Observable<NetworkingUIEventWrapped<HttpResponse>>;
99
- /**
100
- * Get featured product list by store
101
- * GET /api/v1/store/{id}/featured-product-list
102
- */
103
- getFeaturedProductListByStore(storeId: string): Observable<NetworkingUIEventWrapped<HttpResponse>>;
104
- /**
105
- * Get product category list
106
- * GET /api/v1/store/product-category/list
107
- */
108
- getProductCategoryList(): Observable<NetworkingUIEventWrapped<HttpResponse>>;
109
- /**
110
- * Get product by ID
111
- * GET /api/v1/store/product/{id}
112
- */
113
- getProductById(productId: string): Observable<NetworkingUIEventWrapped<HttpResponse>>;
114
- /**
115
- * Get product collection
116
- * GET /api/v1/store/product-collection
117
- */
118
- getProductCollection(payload?: StoreProductCollectionRequest): Observable<NetworkingUIEventWrapped<HttpResponse>>;
119
- /**
120
- * Get product collection by store
121
- * GET /api/v1/store/{id}/product-collection
122
- */
123
- getProductCollectionByStore(storeId: string, payload?: StoreProductCollectionRequest): Observable<NetworkingUIEventWrapped<HttpResponse>>;
124
- }