@passly-nl/data 0.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 (309) hide show
  1. package/CODEOWNERS +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +19 -0
  4. package/dist/adapter/AddressAdapter.d.ts +3 -0
  5. package/dist/adapter/AuthAdapter.d.ts +6 -0
  6. package/dist/adapter/BuyerAdapter.d.ts +4 -0
  7. package/dist/adapter/CommonAdapter.d.ts +4 -0
  8. package/dist/adapter/DateTimeAdapter.d.ts +4 -0
  9. package/dist/adapter/EventAdapter.d.ts +22 -0
  10. package/dist/adapter/FileSystemAdapter.d.ts +4 -0
  11. package/dist/adapter/FinanceAdapter.d.ts +6 -0
  12. package/dist/adapter/FluxAdapter.d.ts +6 -0
  13. package/dist/adapter/MerchantAdapter.d.ts +8 -0
  14. package/dist/adapter/MerchantDashboardAdapter.d.ts +5 -0
  15. package/dist/adapter/OrderAdapter.d.ts +7 -0
  16. package/dist/adapter/PaymentAdapter.d.ts +7 -0
  17. package/dist/adapter/ProductAdapter.d.ts +4 -0
  18. package/dist/adapter/PublicPayAdapter.d.ts +4 -0
  19. package/dist/adapter/PublicShopAdapter.d.ts +13 -0
  20. package/dist/adapter/ReservationAdapter.d.ts +6 -0
  21. package/dist/adapter/TicketAdapter.d.ts +4 -0
  22. package/dist/adapter/index.d.ts +18 -0
  23. package/dist/dto/address/AddressDto.d.ts +20 -0
  24. package/dist/dto/address/index.d.ts +1 -0
  25. package/dist/dto/auth/TotpStateDto.d.ts +10 -0
  26. package/dist/dto/auth/UserDto.d.ts +23 -0
  27. package/dist/dto/auth/UserTokenDto.d.ts +23 -0
  28. package/dist/dto/auth/index.d.ts +3 -0
  29. package/dist/dto/common/StatusResponseDto.d.ts +8 -0
  30. package/dist/dto/common/index.d.ts +1 -0
  31. package/dist/dto/event/EventAvailabilityDto.d.ts +14 -0
  32. package/dist/dto/event/EventCountersDto.d.ts +10 -0
  33. package/dist/dto/event/EventDto.d.ts +29 -0
  34. package/dist/dto/event/EventStatisticsAttendanceDto.d.ts +10 -0
  35. package/dist/dto/event/EventStatisticsBuyerTotalsDto.d.ts +14 -0
  36. package/dist/dto/event/EventStatisticsFinancialDto.d.ts +9 -0
  37. package/dist/dto/event/EventStatisticsOrderTotalsDto.d.ts +12 -0
  38. package/dist/dto/event/EventStatisticsOrdersDto.d.ts +10 -0
  39. package/dist/dto/event/EventStatisticsScanTotalsDto.d.ts +10 -0
  40. package/dist/dto/event/EventStatisticsScansDto.d.ts +12 -0
  41. package/dist/dto/event/EventStatisticsScansPerAppTeamDto.d.ts +10 -0
  42. package/dist/dto/event/EventStatisticsSwapTotalsDto.d.ts +10 -0
  43. package/dist/dto/event/ShopDesignDto.d.ts +10 -0
  44. package/dist/dto/event/ShopDto.d.ts +35 -0
  45. package/dist/dto/event/ShopElementButtonDto.d.ts +12 -0
  46. package/dist/dto/event/ShopElementDividerDto.d.ts +10 -0
  47. package/dist/dto/event/ShopElementDto.d.ts +9 -0
  48. package/dist/dto/event/ShopElementHeadingDto.d.ts +10 -0
  49. package/dist/dto/event/ShopElementNoticeDto.d.ts +15 -0
  50. package/dist/dto/event/ShopElementProductDto.d.ts +7 -0
  51. package/dist/dto/event/ShopElementTextDto.d.ts +7 -0
  52. package/dist/dto/event/StockOverviewDto.d.ts +13 -0
  53. package/dist/dto/event/StockOverviewItemDto.d.ts +13 -0
  54. package/dist/dto/event/StockPoolDto.d.ts +25 -0
  55. package/dist/dto/event/TicketTemplateDto.d.ts +18 -0
  56. package/dist/dto/event/index.d.ts +25 -0
  57. package/dist/dto/fileSystem/PictureDto.d.ts +10 -0
  58. package/dist/dto/fileSystem/index.d.ts +1 -0
  59. package/dist/dto/finance/FinanceOverviewDto.d.ts +13 -0
  60. package/dist/dto/finance/InvoiceDto.d.ts +25 -0
  61. package/dist/dto/finance/InvoiceLineDto.d.ts +17 -0
  62. package/dist/dto/finance/index.d.ts +3 -0
  63. package/dist/dto/index.d.ts +14 -0
  64. package/dist/dto/merchant/ContractDto.d.ts +16 -0
  65. package/dist/dto/merchant/InvitationDto.d.ts +25 -0
  66. package/dist/dto/merchant/MerchantDashboardKeyMetricsDto.d.ts +22 -0
  67. package/dist/dto/merchant/MerchantDashboardUpcomingEventDto.d.ts +25 -0
  68. package/dist/dto/merchant/MerchantDto.d.ts +32 -0
  69. package/dist/dto/merchant/MerchantUserDto.d.ts +14 -0
  70. package/dist/dto/merchant/VatNumberDto.d.ts +19 -0
  71. package/dist/dto/merchant/index.d.ts +7 -0
  72. package/dist/dto/order/BuyerDto.d.ts +27 -0
  73. package/dist/dto/order/OrderDto.d.ts +37 -0
  74. package/dist/dto/order/OrderLineDto.d.ts +20 -0
  75. package/dist/dto/order/OrderPaymentProviderDto.d.ts +8 -0
  76. package/dist/dto/order/OrderProductDto.d.ts +12 -0
  77. package/dist/dto/order/index.d.ts +5 -0
  78. package/dist/dto/payment/CostDto.d.ts +16 -0
  79. package/dist/dto/payment/PaymentMethodDto.d.ts +10 -0
  80. package/dist/dto/payment/PaymentProviderDto.d.ts +12 -0
  81. package/dist/dto/payment/TransactionDto.d.ts +24 -0
  82. package/dist/dto/payment/index.d.ts +4 -0
  83. package/dist/dto/product/ProductDto.d.ts +30 -0
  84. package/dist/dto/product/index.d.ts +1 -0
  85. package/dist/dto/publicPay/PublicPaymentMethodDto.d.ts +10 -0
  86. package/dist/dto/publicPay/index.d.ts +1 -0
  87. package/dist/dto/publicShop/PublicShopCartProductDto.d.ts +10 -0
  88. package/dist/dto/publicShop/PublicShopDesignDto.d.ts +10 -0
  89. package/dist/dto/publicShop/PublicShopDto.d.ts +31 -0
  90. package/dist/dto/publicShop/PublicShopElementButtonDto.d.ts +12 -0
  91. package/dist/dto/publicShop/PublicShopElementDividerDto.d.ts +10 -0
  92. package/dist/dto/publicShop/PublicShopElementDto.d.ts +9 -0
  93. package/dist/dto/publicShop/PublicShopElementHeadingDto.d.ts +10 -0
  94. package/dist/dto/publicShop/PublicShopElementNoticeDto.d.ts +15 -0
  95. package/dist/dto/publicShop/PublicShopElementProductDto.d.ts +7 -0
  96. package/dist/dto/publicShop/PublicShopElementTextDto.d.ts +7 -0
  97. package/dist/dto/publicShop/PublicShopEventDto.d.ts +16 -0
  98. package/dist/dto/publicShop/PublicShopMerchantDto.d.ts +8 -0
  99. package/dist/dto/publicShop/PublicShopProductDto.d.ts +28 -0
  100. package/dist/dto/publicShop/PublicShopReservationDto.d.ts +14 -0
  101. package/dist/dto/publicShop/PublicShopReservationProductDetailsDto.d.ts +13 -0
  102. package/dist/dto/publicShop/PublicShopReservationProductDto.d.ts +9 -0
  103. package/dist/dto/publicShop/PublicShopTimeSlotDto.d.ts +15 -0
  104. package/dist/dto/publicShop/index.d.ts +17 -0
  105. package/dist/dto/reservation/ReservationDto.d.ts +16 -0
  106. package/dist/dto/reservation/ReservationItemDto.d.ts +9 -0
  107. package/dist/dto/reservation/ReservationProductDto.d.ts +13 -0
  108. package/dist/dto/reservation/index.d.ts +3 -0
  109. package/dist/dto/ticket/TicketDto.d.ts +31 -0
  110. package/dist/dto/ticket/index.d.ts +1 -0
  111. package/dist/index.d.ts +5 -0
  112. package/dist/index.js +4 -0
  113. package/dist/index.js.map +136 -0
  114. package/dist/service/AuthService.d.ts +11 -0
  115. package/dist/service/InvitationService.d.ts +7 -0
  116. package/dist/service/MeService.d.ts +12 -0
  117. package/dist/service/MerchantBuyerService.d.ts +7 -0
  118. package/dist/service/MerchantBuyersService.d.ts +5 -0
  119. package/dist/service/MerchantDashboardService.d.ts +6 -0
  120. package/dist/service/MerchantEventProductService.d.ts +10 -0
  121. package/dist/service/MerchantEventProductsService.d.ts +8 -0
  122. package/dist/service/MerchantEventService.d.ts +13 -0
  123. package/dist/service/MerchantEventShopService.d.ts +9 -0
  124. package/dist/service/MerchantEventShopsService.d.ts +8 -0
  125. package/dist/service/MerchantEventStatisticsService.d.ts +10 -0
  126. package/dist/service/MerchantEventStockPoolsService.d.ts +9 -0
  127. package/dist/service/MerchantEventTicketTemplateService.d.ts +11 -0
  128. package/dist/service/MerchantEventTicketTemplatesService.d.ts +9 -0
  129. package/dist/service/MerchantEventsService.d.ts +7 -0
  130. package/dist/service/MerchantFinanceInvoiceService.d.ts +6 -0
  131. package/dist/service/MerchantFinanceInvoicesService.d.ts +5 -0
  132. package/dist/service/MerchantFinanceService.d.ts +8 -0
  133. package/dist/service/MerchantOrderService.d.ts +9 -0
  134. package/dist/service/MerchantOrdersService.d.ts +5 -0
  135. package/dist/service/MerchantService.d.ts +14 -0
  136. package/dist/service/MerchantStatisticsService.d.ts +5 -0
  137. package/dist/service/MerchantTicketService.d.ts +7 -0
  138. package/dist/service/MerchantTicketsService.d.ts +5 -0
  139. package/dist/service/MerchantUsersService.d.ts +7 -0
  140. package/dist/service/MerchantsService.d.ts +5 -0
  141. package/dist/service/PublicOrderService.d.ts +7 -0
  142. package/dist/service/PublicShopService.d.ts +9 -0
  143. package/dist/service/ReservationService.d.ts +6 -0
  144. package/dist/service/ServicesService.d.ts +9 -0
  145. package/dist/service/UiSelectOptionsService.d.ts +6 -0
  146. package/dist/service/index.d.ts +32 -0
  147. package/dist/types/index.d.ts +9 -0
  148. package/dist/util/emptyNull.d.ts +1 -0
  149. package/dist/util/index.d.ts +4 -0
  150. package/dist/util/jsonBlob.d.ts +1 -0
  151. package/dist/util/optional.d.ts +4 -0
  152. package/dist/util/optionalArray.d.ts +1 -0
  153. package/package.json +62 -0
  154. package/src/adapter/AddressAdapter.ts +18 -0
  155. package/src/adapter/AuthAdapter.ts +42 -0
  156. package/src/adapter/BuyerAdapter.ts +22 -0
  157. package/src/adapter/CommonAdapter.ts +12 -0
  158. package/src/adapter/DateTimeAdapter.ts +11 -0
  159. package/src/adapter/EventAdapter.ts +237 -0
  160. package/src/adapter/FileSystemAdapter.ts +13 -0
  161. package/src/adapter/FinanceAdapter.ts +40 -0
  162. package/src/adapter/FluxAdapter.ts +21 -0
  163. package/src/adapter/MerchantAdapter.ts +70 -0
  164. package/src/adapter/MerchantDashboardAdapter.ts +29 -0
  165. package/src/adapter/OrderAdapter.ts +55 -0
  166. package/src/adapter/PaymentAdapter.ts +48 -0
  167. package/src/adapter/ProductAdapter.ts +24 -0
  168. package/src/adapter/PublicPayAdapter.ts +13 -0
  169. package/src/adapter/PublicShopAdapter.ts +149 -0
  170. package/src/adapter/ReservationAdapter.ts +33 -0
  171. package/src/adapter/TicketAdapter.ts +24 -0
  172. package/src/adapter/index.ts +18 -0
  173. package/src/dto/address/AddressDto.ts +88 -0
  174. package/src/dto/address/index.ts +1 -0
  175. package/src/dto/auth/TotpStateDto.ts +38 -0
  176. package/src/dto/auth/UserDto.ts +99 -0
  177. package/src/dto/auth/UserTokenDto.ts +91 -0
  178. package/src/dto/auth/index.ts +3 -0
  179. package/src/dto/common/StatusResponseDto.ts +28 -0
  180. package/src/dto/common/index.ts +1 -0
  181. package/src/dto/event/EventAvailabilityDto.ts +58 -0
  182. package/src/dto/event/EventCountersDto.ts +38 -0
  183. package/src/dto/event/EventDto.ts +121 -0
  184. package/src/dto/event/EventStatisticsAttendanceDto.ts +38 -0
  185. package/src/dto/event/EventStatisticsBuyerTotalsDto.ts +58 -0
  186. package/src/dto/event/EventStatisticsFinancialDto.ts +29 -0
  187. package/src/dto/event/EventStatisticsOrderTotalsDto.ts +48 -0
  188. package/src/dto/event/EventStatisticsOrdersDto.ts +30 -0
  189. package/src/dto/event/EventStatisticsScanTotalsDto.ts +38 -0
  190. package/src/dto/event/EventStatisticsScansDto.ts +40 -0
  191. package/src/dto/event/EventStatisticsScansPerAppTeamDto.ts +38 -0
  192. package/src/dto/event/EventStatisticsSwapTotalsDto.ts +38 -0
  193. package/src/dto/event/ShopDesignDto.ts +38 -0
  194. package/src/dto/event/ShopDto.ts +151 -0
  195. package/src/dto/event/ShopElementButtonDto.ts +41 -0
  196. package/src/dto/event/ShopElementDividerDto.ts +31 -0
  197. package/src/dto/event/ShopElementDto.ts +27 -0
  198. package/src/dto/event/ShopElementHeadingDto.ts +31 -0
  199. package/src/dto/event/ShopElementNoticeDto.ts +52 -0
  200. package/src/dto/event/ShopElementProductDto.ts +20 -0
  201. package/src/dto/event/ShopElementTextDto.ts +20 -0
  202. package/src/dto/event/StockOverviewDto.ts +49 -0
  203. package/src/dto/event/StockOverviewItemDto.ts +49 -0
  204. package/src/dto/event/StockPoolDto.ts +109 -0
  205. package/src/dto/event/TicketTemplateDto.ts +70 -0
  206. package/src/dto/event/index.ts +25 -0
  207. package/src/dto/fileSystem/PictureDto.ts +38 -0
  208. package/src/dto/fileSystem/index.ts +1 -0
  209. package/src/dto/finance/FinanceOverviewDto.ts +49 -0
  210. package/src/dto/finance/InvoiceDto.ts +101 -0
  211. package/src/dto/finance/InvoiceLineDto.ts +61 -0
  212. package/src/dto/finance/index.ts +3 -0
  213. package/src/dto/index.ts +14 -0
  214. package/src/dto/merchant/ContractDto.ts +60 -0
  215. package/src/dto/merchant/InvitationDto.ts +101 -0
  216. package/src/dto/merchant/MerchantDashboardKeyMetricsDto.ts +59 -0
  217. package/src/dto/merchant/MerchantDashboardUpcomingEventDto.ts +101 -0
  218. package/src/dto/merchant/MerchantDto.ts +140 -0
  219. package/src/dto/merchant/MerchantUserDto.ts +50 -0
  220. package/src/dto/merchant/VatNumberDto.ts +79 -0
  221. package/src/dto/merchant/index.ts +7 -0
  222. package/src/dto/order/BuyerDto.ts +111 -0
  223. package/src/dto/order/OrderDto.ts +161 -0
  224. package/src/dto/order/OrderLineDto.ts +80 -0
  225. package/src/dto/order/OrderPaymentProviderDto.ts +28 -0
  226. package/src/dto/order/OrderProductDto.ts +48 -0
  227. package/src/dto/order/index.ts +5 -0
  228. package/src/dto/payment/CostDto.ts +68 -0
  229. package/src/dto/payment/PaymentMethodDto.ts +38 -0
  230. package/src/dto/payment/PaymentProviderDto.ts +40 -0
  231. package/src/dto/payment/TransactionDto.ts +100 -0
  232. package/src/dto/payment/index.ts +4 -0
  233. package/src/dto/product/ProductDto.ts +130 -0
  234. package/src/dto/product/index.ts +1 -0
  235. package/src/dto/publicPay/PublicPaymentMethodDto.ts +38 -0
  236. package/src/dto/publicPay/index.ts +1 -0
  237. package/src/dto/publicShop/PublicShopCartProductDto.ts +38 -0
  238. package/src/dto/publicShop/PublicShopDesignDto.ts +38 -0
  239. package/src/dto/publicShop/PublicShopDto.ts +131 -0
  240. package/src/dto/publicShop/PublicShopElementButtonDto.ts +41 -0
  241. package/src/dto/publicShop/PublicShopElementDividerDto.ts +31 -0
  242. package/src/dto/publicShop/PublicShopElementDto.ts +27 -0
  243. package/src/dto/publicShop/PublicShopElementHeadingDto.ts +31 -0
  244. package/src/dto/publicShop/PublicShopElementNoticeDto.ts +52 -0
  245. package/src/dto/publicShop/PublicShopElementProductDto.ts +20 -0
  246. package/src/dto/publicShop/PublicShopElementTextDto.ts +20 -0
  247. package/src/dto/publicShop/PublicShopEventDto.ts +60 -0
  248. package/src/dto/publicShop/PublicShopMerchantDto.ts +28 -0
  249. package/src/dto/publicShop/PublicShopProductDto.ts +120 -0
  250. package/src/dto/publicShop/PublicShopReservationDto.ts +50 -0
  251. package/src/dto/publicShop/PublicShopReservationProductDetailsDto.ts +49 -0
  252. package/src/dto/publicShop/PublicShopReservationProductDto.ts +29 -0
  253. package/src/dto/publicShop/PublicShopTimeSlotDto.ts +59 -0
  254. package/src/dto/publicShop/index.ts +17 -0
  255. package/src/dto/reservation/ReservationDto.ts +60 -0
  256. package/src/dto/reservation/ReservationItemDto.ts +29 -0
  257. package/src/dto/reservation/ReservationProductDto.ts +49 -0
  258. package/src/dto/reservation/index.ts +3 -0
  259. package/src/dto/ticket/TicketDto.ts +131 -0
  260. package/src/dto/ticket/index.ts +1 -0
  261. package/src/index.ts +5 -0
  262. package/src/service/AuthService.ts +71 -0
  263. package/src/service/InvitationService.ts +35 -0
  264. package/src/service/MeService.ts +106 -0
  265. package/src/service/MerchantBuyerService.ts +37 -0
  266. package/src/service/MerchantBuyersService.ts +17 -0
  267. package/src/service/MerchantDashboardService.ts +23 -0
  268. package/src/service/MerchantEventProductService.ts +76 -0
  269. package/src/service/MerchantEventProductsService.ts +48 -0
  270. package/src/service/MerchantEventService.ts +115 -0
  271. package/src/service/MerchantEventShopService.ts +66 -0
  272. package/src/service/MerchantEventShopsService.ts +43 -0
  273. package/src/service/MerchantEventStatisticsService.ts +65 -0
  274. package/src/service/MerchantEventStockPoolsService.ts +54 -0
  275. package/src/service/MerchantEventTicketTemplateService.ts +75 -0
  276. package/src/service/MerchantEventTicketTemplatesService.ts +53 -0
  277. package/src/service/MerchantEventsService.ts +35 -0
  278. package/src/service/MerchantFinanceInvoiceService.ts +25 -0
  279. package/src/service/MerchantFinanceInvoicesService.ts +17 -0
  280. package/src/service/MerchantFinanceService.ts +36 -0
  281. package/src/service/MerchantOrderService.ts +55 -0
  282. package/src/service/MerchantOrdersService.ts +26 -0
  283. package/src/service/MerchantService.ts +117 -0
  284. package/src/service/MerchantStatisticsService.ts +14 -0
  285. package/src/service/MerchantTicketService.ts +35 -0
  286. package/src/service/MerchantTicketsService.ts +26 -0
  287. package/src/service/MerchantUsersService.ts +34 -0
  288. package/src/service/MerchantsService.ts +15 -0
  289. package/src/service/PublicOrderService.ts +35 -0
  290. package/src/service/PublicShopService.ts +49 -0
  291. package/src/service/ReservationService.ts +23 -0
  292. package/src/service/ServicesService.ts +18 -0
  293. package/src/service/UiSelectOptionsService.ts +33 -0
  294. package/src/service/index.ts +32 -0
  295. package/src/types/auth.ts +47 -0
  296. package/src/types/event.ts +28 -0
  297. package/src/types/finance.ts +14 -0
  298. package/src/types/general.ts +19 -0
  299. package/src/types/index.ts +9 -0
  300. package/src/types/order.ts +7 -0
  301. package/src/types/payment.ts +11 -0
  302. package/src/types/product.ts +2 -0
  303. package/src/types/publicShop.ts +7 -0
  304. package/src/types/ticket.ts +12 -0
  305. package/src/util/emptyNull.ts +9 -0
  306. package/src/util/index.ts +4 -0
  307. package/src/util/jsonBlob.ts +5 -0
  308. package/src/util/optional.ts +7 -0
  309. package/src/util/optionalArray.ts +7 -0
@@ -0,0 +1,117 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import { AuthAdapter, CommonAdapter, MerchantAdapter, PaymentAdapter } from '#data/adapter';
3
+ import type { ContractDto, MerchantDto, PaymentProviderDto, StatusResponseDto, UserDto, VatNumberDto } from '#data/dto';
4
+ import type { Claim } from '#data/types';
5
+ import { emptyNull } from '#data/util';
6
+
7
+ export class MerchantService extends BaseService {
8
+ async get(merchantId: string): Promise<BaseResponse<MerchantDto>> {
9
+ return await this
10
+ .request(`/merchants/${merchantId}`)
11
+ .method('get')
12
+ .queryString(QueryString.builder()
13
+ .append('language', 'nl'))
14
+ .bearerToken()
15
+ .runAdapter(MerchantAdapter.parseMerchantFromObject);
16
+ }
17
+
18
+ async getAccountManager(merchantId: string): Promise<BaseResponse<UserDto | null>> {
19
+ return await this
20
+ .request(`/merchants/${merchantId}/account-manager`)
21
+ .method('get')
22
+ .queryString(QueryString.builder()
23
+ .append('language', 'nl'))
24
+ .bearerToken()
25
+ .runAdapter(AuthAdapter.parseUserFromObject);
26
+ }
27
+
28
+ async getClaims(merchantId: string): Promise<BaseResponse<Claim[]>> {
29
+ return await this
30
+ .request(`/merchants/${merchantId}/claims`)
31
+ .method('get')
32
+ .queryString(QueryString.builder()
33
+ .append('language', 'nl'))
34
+ .bearerToken()
35
+ .runAdapter(r => Object.values(r) as Claim[]);
36
+ }
37
+
38
+ async getContract(merchantId: string): Promise<BaseResponse<ContractDto>> {
39
+ return await this
40
+ .request(`/merchants/${merchantId}/contract`)
41
+ .method('get')
42
+ .queryString(QueryString.builder()
43
+ .append('language', 'nl'))
44
+ .bearerToken()
45
+ .runAdapter(MerchantAdapter.parseContractFromObject);
46
+ }
47
+
48
+ async getPaymentProviders(merchantId: string): Promise<BaseResponse<PaymentProviderDto[]>> {
49
+ return await this
50
+ .request(`/merchants/${merchantId}/payment-providers`)
51
+ .method('get')
52
+ .queryString(QueryString.builder()
53
+ .append('language', 'nl'))
54
+ .bearerToken()
55
+ .runArrayAdapter(PaymentAdapter.parsePaymentProviderFromObject);
56
+ }
57
+
58
+ async getVatNumber(merchantId: string): Promise<BaseResponse<VatNumberDto>> {
59
+ return await this
60
+ .request(`/merchants/${merchantId}/vat-number`)
61
+ .method('get')
62
+ .queryString(QueryString.builder()
63
+ .append('language', 'nl'))
64
+ .bearerToken()
65
+ .runAdapter(MerchantAdapter.parseVatNumberFromObject);
66
+ }
67
+
68
+ async put(merchantId: string, merchant: MerchantDto): Promise<BaseResponse<MerchantDto>> {
69
+ return await this
70
+ .request(`/merchants/${merchantId}`)
71
+ .method('put')
72
+ .queryString(QueryString.builder()
73
+ .append('language', 'nl'))
74
+ .bearerToken()
75
+ .body({
76
+ name: merchant.name,
77
+ email: merchant.email,
78
+ phone_number: merchant.phoneNumber,
79
+ url: merchant.url,
80
+ chamber_of_commerce_number: merchant.chamberOfCommerceNumber,
81
+ vat_number: merchant.vatNumber,
82
+ address: {
83
+ label: emptyNull(merchant.address.label),
84
+ street: merchant.address.street,
85
+ number: merchant.address.number,
86
+ postal_code: merchant.address.postalCode,
87
+ city: merchant.address.city,
88
+ country_code: merchant.address.country
89
+ }
90
+ })
91
+ .runAdapter(MerchantAdapter.parseMerchantFromObject);
92
+ }
93
+
94
+ async postLogo(merchantId: string, picture: File): Promise<BaseResponse<StatusResponseDto>> {
95
+ const data = new FormData();
96
+ data.append('file', picture);
97
+
98
+ return await this
99
+ .request(`/merchants/${merchantId}/logo`)
100
+ .method('post')
101
+ .bearerToken()
102
+ .queryString(QueryString.builder()
103
+ .append('language', 'nl'))
104
+ .body(data)
105
+ .runAdapter(CommonAdapter.parseStatusResponseFromObject);
106
+ }
107
+
108
+ async deleteLogo(merchantId: string): Promise<BaseResponse<StatusResponseDto>> {
109
+ return await this
110
+ .request(`/merchants/${merchantId}/logo`)
111
+ .method('delete')
112
+ .bearerToken()
113
+ .queryString(QueryString.builder()
114
+ .append('language', 'nl'))
115
+ .runAdapter(CommonAdapter.parseStatusResponseFromObject);
116
+ }
117
+ }
@@ -0,0 +1,14 @@
1
+ import { type BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import type { ApexOptions } from 'apexcharts';
3
+
4
+ export class MerchantStatisticsService extends BaseService {
5
+ async getRevenueTrend(merchantId: string): Promise<BaseResponse<ApexOptions>> {
6
+ return this
7
+ .request(`/merchants/${merchantId}/statistics/revenue-trend`)
8
+ .method('get')
9
+ .queryString(QueryString.builder()
10
+ .append('language', 'nl'))
11
+ .bearerToken()
12
+ .runAdapter(r => r);
13
+ }
14
+ }
@@ -0,0 +1,35 @@
1
+ import { BaseResponse, BaseService, BlobResponse, QueryString } from '@basmilius/http-client';
2
+ import { TicketAdapter } from '#data/adapter';
3
+ import type { TicketDto } from '#data/dto';
4
+
5
+ export class MerchantTicketService extends BaseService {
6
+ async get(merchantId: string, ticketId: string): Promise<BaseResponse<TicketDto>> {
7
+ return await this
8
+ .request(`/merchants/${merchantId}/tickets/${ticketId}`)
9
+ .method('get')
10
+ .bearerToken()
11
+ .queryString(QueryString.builder()
12
+ .append('language', 'nl'))
13
+ .runAdapter(TicketAdapter.parseTicketFromObject);
14
+ }
15
+
16
+ async getPass(merchantId: string, ticketId: string): Promise<BlobResponse> {
17
+ return await this
18
+ .request(`/merchants/${merchantId}/tickets/${ticketId}/pass`)
19
+ .method('get')
20
+ .bearerToken()
21
+ .queryString(QueryString.builder()
22
+ .append('language', 'nl'))
23
+ .fetchBlob();
24
+ }
25
+
26
+ async getPDF(merchantId: string, ticketId: string): Promise<BlobResponse> {
27
+ return await this
28
+ .request(`/merchants/${merchantId}/tickets/${ticketId}/pdf`)
29
+ .method('get')
30
+ .bearerToken()
31
+ .queryString(QueryString.builder()
32
+ .append('language', 'nl'))
33
+ .fetchBlob();
34
+ }
35
+ }
@@ -0,0 +1,26 @@
1
+ import { BaseResponse, BaseService, Paginated, QueryString } from '@basmilius/http-client';
2
+ import { TicketAdapter } from '#data/adapter';
3
+ import type { TicketDto } from '#data/dto';
4
+
5
+ export class MerchantTicketsService extends BaseService {
6
+ async get(merchantId: string, offset: number, limit: number, filter?: Record<string, string | number | boolean>): Promise<BaseResponse<Paginated<TicketDto>>> {
7
+ const query = QueryString
8
+ .builder()
9
+ .append('language', 'nl')
10
+ .append('offset', offset)
11
+ .append('limit', limit);
12
+
13
+ if (filter) {
14
+ Object
15
+ .entries(filter)
16
+ .forEach(([key, value]) => query.append(key, value));
17
+ }
18
+
19
+ return await this
20
+ .request(`/merchants/${merchantId}/tickets`)
21
+ .method('get')
22
+ .queryString(query)
23
+ .bearerToken()
24
+ .runPaginatedAdapter(TicketAdapter.parseTicketFromObject);
25
+ }
26
+ }
@@ -0,0 +1,34 @@
1
+ import { BaseResponse, BaseService, Paginated, QueryString } from '@basmilius/http-client';
2
+ import { MerchantAdapter } from '#data/adapter';
3
+ import type { InvitationDto, MerchantUserDto } from '#data/dto';
4
+ import type { Claim } from '#data/types';
5
+
6
+ export class MerchantUsersService extends BaseService {
7
+ async get(merchantId: string, offset: number, limit: number): Promise<BaseResponse<Paginated<MerchantUserDto>>> {
8
+ return await this
9
+ .request(`/merchants/${merchantId}/users`)
10
+ .method('get')
11
+ .queryString(QueryString.builder()
12
+ .append('language', 'nl')
13
+ .append('offset', offset)
14
+ .append('limit', limit))
15
+ .bearerToken()
16
+ .runPaginatedAdapter(MerchantAdapter.parseMerchantUserFromObject);
17
+ }
18
+
19
+ async postInvite(merchantId: string, firstName: string, lastName: string, email: string, claims: Claim[]): Promise<BaseResponse<InvitationDto>> {
20
+ return await this
21
+ .request(`/merchants/${merchantId}/users/invite`)
22
+ .method('post')
23
+ .queryString(QueryString.builder()
24
+ .append('language', 'nl'))
25
+ .bearerToken()
26
+ .body({
27
+ first_name: firstName,
28
+ last_name: lastName,
29
+ email,
30
+ claims
31
+ })
32
+ .runAdapter(MerchantAdapter.parseInvitationFromObject);
33
+ }
34
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import { MerchantAdapter } from '#data/adapter';
3
+ import type { MerchantDto } from '#data/dto';
4
+
5
+ export class MerchantsService extends BaseService {
6
+ async get(): Promise<BaseResponse<MerchantDto[]>> {
7
+ return await this
8
+ .request('/merchants')
9
+ .method('get')
10
+ .bearerToken()
11
+ .queryString(QueryString.builder()
12
+ .append('language', 'nl'))
13
+ .runArrayAdapter(MerchantAdapter.parseMerchantFromObject);
14
+ }
15
+ }
@@ -0,0 +1,35 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import { OrderAdapter, PaymentAdapter, PublicPayAdapter } from '#data/adapter';
3
+ import type { OrderDto, PublicPaymentMethodDto, TransactionDto } from '#data/dto';
4
+
5
+ export class PublicOrderService extends BaseService {
6
+ async get(orderId: string): Promise<BaseResponse<OrderDto>> {
7
+ return await this
8
+ .request(`/orders/${orderId}`)
9
+ .method('get')
10
+ .queryString(QueryString.builder()
11
+ .append('language', 'nl'))
12
+ .runAdapter(OrderAdapter.parseOrderFromObject);
13
+ }
14
+
15
+ async getPaymentMethods(orderId: string): Promise<BaseResponse<PublicPaymentMethodDto[]>> {
16
+ return await this
17
+ .request(`/orders/${orderId}/payment-methods`)
18
+ .method('get')
19
+ .queryString(QueryString.builder()
20
+ .append('language', 'nl'))
21
+ .runArrayAdapter(PublicPayAdapter.parsePublicPaymentMethodFromObject);
22
+ }
23
+
24
+ async postPay(orderId: string, paymentMethodId: string): Promise<BaseResponse<TransactionDto>> {
25
+ return await this
26
+ .request(`/orders/${orderId}/pay`)
27
+ .method('post')
28
+ .queryString(QueryString.builder()
29
+ .append('language', 'nl'))
30
+ .body({
31
+ payment_method_id: paymentMethodId
32
+ })
33
+ .runAdapter(PaymentAdapter.parseTransactionFromObject);
34
+ }
35
+ }
@@ -0,0 +1,49 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import type { DateTime } from 'luxon';
3
+ import { OrderAdapter, PublicShopAdapter } from '#data/adapter';
4
+ import type { OrderDto, PublicShopCartProductDto, PublicShopDto, PublicShopReservationDto } from '#data/dto';
5
+ import type { Gender } from '#data/types';
6
+
7
+ export class PublicShopService extends BaseService {
8
+ async get(shopId: string): Promise<BaseResponse<PublicShopDto>> {
9
+ return await this
10
+ .request(`/shops/${shopId}`)
11
+ .method('get')
12
+ .queryString(QueryString.builder()
13
+ .append('language', 'nl'))
14
+ .runAdapter(PublicShopAdapter.parsePublicShopFromObject);
15
+ }
16
+
17
+ async buy(shopId: string, reservationId: string, firstName: string, lastName: string, email: string, phoneNumber: string, dateOfBirth: DateTime | null, gender: Gender | null): Promise<BaseResponse<OrderDto>> {
18
+ return await this
19
+ .request(`/shops/${shopId}/buy/${reservationId}`)
20
+ .method('post')
21
+ .queryString(QueryString.builder()
22
+ .append('language', 'nl'))
23
+ .body({
24
+ first_name: firstName,
25
+ last_name: lastName,
26
+ email: email,
27
+ phone_number: phoneNumber.trim() === '' ? null : phoneNumber.trim(),
28
+ date_of_birth: dateOfBirth?.toISODate(),
29
+ gender: gender
30
+ })
31
+ .runAdapter(OrderAdapter.parseOrderFromObject);
32
+ }
33
+
34
+ async reserve(shopId: string, products: PublicShopCartProductDto[]): Promise<BaseResponse<PublicShopReservationDto>> {
35
+ return await this
36
+ .request(`/shops/${shopId}/reserve`)
37
+ .method('post')
38
+ .queryString(QueryString.builder()
39
+ .append('language', 'nl'))
40
+ .body({
41
+ products: products.map(p => [
42
+ p.productId,
43
+ p.quantity,
44
+ p.timeSlotId
45
+ ])
46
+ })
47
+ .runAdapter(PublicShopAdapter.parsePublicShopReservationFromObject);
48
+ }
49
+ }
@@ -0,0 +1,23 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import { ReservationAdapter } from '#data/adapter';
3
+ import type { ReservationDto } from '#data/dto';
4
+
5
+ export class ReservationService extends BaseService {
6
+ async get(id: string): Promise<BaseResponse<ReservationDto>> {
7
+ return await this
8
+ .request(`/reservations/${id}`)
9
+ .method('get')
10
+ .queryString(QueryString.builder()
11
+ .append('language', 'nl'))
12
+ .runAdapter(ReservationAdapter.parseReservationFromObject);
13
+ }
14
+
15
+ async remove(id: string): Promise<BaseResponse<never>> {
16
+ return await this
17
+ .request(`/reservations/${id}`)
18
+ .method('delete')
19
+ .queryString(QueryString.builder()
20
+ .append('language', 'nl'))
21
+ .run();
22
+ }
23
+ }
@@ -0,0 +1,18 @@
1
+ import { type BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+
3
+ export class ServicesService extends BaseService {
4
+ async checkEmail(email: string): Promise<BaseResponse<CheckEmailResponse>> {
5
+ return await this
6
+ .request('/service/check-email')
7
+ .method('get')
8
+ .queryString(QueryString.builder()
9
+ .append('email', email)
10
+ .append('language', 'nl'))
11
+ .runAdapter(r => r as CheckEmailResponse);
12
+ }
13
+ }
14
+
15
+ type CheckEmailResponse = {
16
+ readonly email: string;
17
+ readonly suggestions?: string[];
18
+ };
@@ -0,0 +1,33 @@
1
+ import { BaseResponse, BaseService, QueryString } from '@basmilius/http-client';
2
+ import type { FluxFormSelectEntry, FluxFormSelectOption } from '@flux-ui/types';
3
+
4
+ export class UiSelectOptionsService extends BaseService {
5
+ async getClaims(): Promise<BaseResponse<FluxFormSelectEntry[]>> {
6
+ return await this
7
+ .request('/ui/select-options/claims')
8
+ .method('get')
9
+ .bearerToken()
10
+ .queryString(QueryString.builder()
11
+ .append('language', 'nl'))
12
+ .runAdapter((grouped: any) => {
13
+ const result: FluxFormSelectEntry[] = [];
14
+
15
+ grouped.forEach(group => {
16
+ result.push({icon: group.icon, label: group.label});
17
+ group.claims.forEach(claim => result.push({label: claim.label, value: claim.value}));
18
+ });
19
+
20
+ return result;
21
+ });
22
+ }
23
+
24
+ async getCountries(): Promise<BaseResponse<FluxFormSelectOption[]>> {
25
+ return await this
26
+ .request('/ui/select-options/countries')
27
+ .method('get')
28
+ .bearerToken()
29
+ .queryString(QueryString.builder()
30
+ .append('language', 'nl'))
31
+ .runArrayAdapter<FluxFormSelectOption>(e => e as FluxFormSelectOption);
32
+ }
33
+ }
@@ -0,0 +1,32 @@
1
+ export * from './AuthService';
2
+ export * from './InvitationService';
3
+ export * from './MerchantService';
4
+ export * from './MerchantsService';
5
+ export * from './MerchantBuyerService';
6
+ export * from './MerchantBuyersService';
7
+ export * from './MerchantDashboardService';
8
+ export * from './MerchantEventProductService';
9
+ export * from './MerchantEventProductsService';
10
+ export * from './MerchantEventService';
11
+ export * from './MerchantEventStatisticsService';
12
+ export * from './MerchantEventShopService';
13
+ export * from './MerchantEventShopsService';
14
+ export * from './MerchantEventStockPoolsService';
15
+ export * from './MerchantEventTicketTemplateService';
16
+ export * from './MerchantEventTicketTemplatesService';
17
+ export * from './MerchantEventsService';
18
+ export * from './MerchantFinanceInvoiceService';
19
+ export * from './MerchantFinanceInvoicesService';
20
+ export * from './MerchantFinanceService';
21
+ export * from './MerchantOrderService';
22
+ export * from './MerchantOrdersService';
23
+ export * from './MerchantStatisticsService';
24
+ export * from './MerchantTicketService';
25
+ export * from './MerchantTicketsService';
26
+ export * from './MerchantUsersService';
27
+ export * from './MeService';
28
+ export * from './PublicOrderService';
29
+ export * from './PublicShopService';
30
+ export * from './ReservationService';
31
+ export * from './ServicesService';
32
+ export * from './UiSelectOptionsService';
@@ -0,0 +1,47 @@
1
+ export type Claim =
2
+ | 'admin:view'
3
+ | 'auth:login'
4
+ | 'buyers:view'
5
+ | 'events:create'
6
+ | 'events:manage'
7
+ | 'events:publish'
8
+ | 'events:statistics'
9
+ | 'events:unpublish'
10
+ | 'events:view'
11
+ | 'events:tickets:export'
12
+ | 'events:tickets:scan'
13
+ | 'events:tickets:view'
14
+ | 'finance:export'
15
+ | 'finance:view'
16
+ | 'finance:invoices:view'
17
+ | 'merchant:admin'
18
+ | 'merchant:users'
19
+ | 'orders:export'
20
+ | 'orders:view'
21
+ | 'statistics:view'
22
+ | 'tasks:view';
23
+
24
+ export type UserTokenType =
25
+ | 'access_token'
26
+ | 'authorization_code'
27
+ | 'refresh_token'
28
+ | 'session';
29
+
30
+ export type BrowserType =
31
+ | 'brave'
32
+ | 'chrome'
33
+ | 'edge'
34
+ | 'firefox'
35
+ | 'opera'
36
+ | 'safari'
37
+ | 'samsunginternet'
38
+ | 'vivaldi';
39
+
40
+ export type OperatingSystemType =
41
+ | 'ios'
42
+ | 'ipados'
43
+ | 'macos'
44
+ | 'windows'
45
+ | 'linux'
46
+ | 'android'
47
+ | 'chromeos';
@@ -0,0 +1,28 @@
1
+ export type EventStatus =
2
+ | 'active'
3
+ | 'concluded'
4
+ | 'happening'
5
+ | 'in_sale'
6
+ | 'pending';
7
+
8
+ export type ShopElementType =
9
+ | 'button'
10
+ | 'divider'
11
+ | 'heading'
12
+ | 'notice'
13
+ | 'product'
14
+ | 'text';
15
+
16
+ export type ShopFieldRequirement =
17
+ | 'disabled'
18
+ | 'enabled'
19
+ | 'required';
20
+
21
+ export type ShopStatus =
22
+ | 'closed'
23
+ | 'concluded'
24
+ | 'in_sale'
25
+ | 'pending';
26
+
27
+ export type TicketTemplateType =
28
+ | 'default';
@@ -0,0 +1,14 @@
1
+ export type DailyRevenueChart = {
2
+ current: DailyRevenueChartEntry[];
3
+ previous: DailyRevenueChartEntry[];
4
+ };
5
+
6
+ export type DailyRevenueChartEntry = {
7
+ readonly date: string;
8
+ readonly label: string;
9
+ readonly value: number;
10
+ };
11
+
12
+ export type InvoiceLineType =
13
+ | 'fee'
14
+ | 'manual';
@@ -0,0 +1,19 @@
1
+ export type Gender =
2
+ | 'female'
3
+ | 'male'
4
+ | 'other';
5
+
6
+ export type HeadingLevel =
7
+ | 1
8
+ | 2
9
+ | 3
10
+ | 4
11
+ | 5
12
+ | 6;
13
+
14
+ export type NoticeType =
15
+ | 'primary'
16
+ | 'danger'
17
+ | 'info'
18
+ | 'success'
19
+ | 'warning';
@@ -0,0 +1,9 @@
1
+ export type * from './auth';
2
+ export type * from './general';
3
+ export type * from './event';
4
+ export type * from './finance';
5
+ export type * from './order';
6
+ export type * from './payment';
7
+ export type * from './product';
8
+ export type * from './publicShop';
9
+ export type * from './ticket';
@@ -0,0 +1,7 @@
1
+ export type OrderOrigin =
2
+ | 'local'
3
+ | 'ticketswap';
4
+
5
+ export type OrderType =
6
+ | 'default'
7
+ | 'guest';
@@ -0,0 +1,11 @@
1
+ export type PaymentProviderType =
2
+ | 'mollie'
3
+ | 'manual';
4
+
5
+ export type TransactionStatus =
6
+ | 'canceled'
7
+ | 'expired'
8
+ | 'failed'
9
+ | 'paid'
10
+ | 'pending'
11
+ | 'setup'
@@ -0,0 +1,2 @@
1
+ export type ProductType =
2
+ | 'ticket'
@@ -0,0 +1,7 @@
1
+ export type PublicShopElementType =
2
+ | 'button'
3
+ | 'divider'
4
+ | 'heading'
5
+ | 'notice'
6
+ | 'product'
7
+ | 'text';
@@ -0,0 +1,12 @@
1
+ export type ScanStatus =
2
+ | 'checkin'
3
+ | 'checkout'
4
+ | 'expired'
5
+ | 'pending'
6
+ | 'upcoming';
7
+
8
+ export type TicketValidity =
9
+ | 'valid'
10
+ | 'invalid'
11
+ | 'refunded'
12
+ | 'swapped';
@@ -0,0 +1,9 @@
1
+ export default function <T>(value: T): T | null {
2
+ if (typeof value === 'string' && value.trim().length === 0) {
3
+ return null;
4
+ } else if (Array.isArray(value) && value.length === 0) {
5
+ return null;
6
+ }
7
+
8
+ return value;
9
+ }
@@ -0,0 +1,4 @@
1
+ export { default as emptyNull } from './emptyNull';
2
+ export { default as jsonBlob } from './jsonBlob';
3
+ export { default as optional } from './optional';
4
+ export { default as optionalArray } from './optionalArray';
@@ -0,0 +1,5 @@
1
+ export default function <T>(json: T): Blob {
2
+ return new Blob([JSON.stringify(json)], {
3
+ type: 'application/json'
4
+ });
5
+ }
@@ -0,0 +1,7 @@
1
+ export default function <T, U>(value: U, adapter: (value: U) => T): T {
2
+ if (value === undefined || value === null) {
3
+ return null as T;
4
+ }
5
+
6
+ return adapter(value);
7
+ }
@@ -0,0 +1,7 @@
1
+ export default function <T>(value: object[], adapter: (value: object) => T): T[] | null {
2
+ if (value === undefined || value === null) {
3
+ return null;
4
+ }
5
+
6
+ return value.map(adapter);
7
+ }