@stamhoofd/backend 2.144.0 → 2.145.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 (99) hide show
  1. package/package.json +19 -19
  2. package/src/crons/mollie-chargebacks.ts +31 -29
  3. package/src/crons/mollie-refunds.ts +61 -59
  4. package/src/endpoints/admin/organizations/PatchOrganizationsEndpoint.ts +16 -5
  5. package/src/endpoints/auth/CreateTokenEndpoint.test.ts +210 -4
  6. package/src/endpoints/auth/CreateTokenEndpoint.ts +9 -20
  7. package/src/endpoints/auth/DeleteTokenEndpoint.test.ts +29 -0
  8. package/src/endpoints/auth/DeleteTokenEndpoint.ts +2 -1
  9. package/src/endpoints/auth/GetUserEndpoint.test.ts +32 -11
  10. package/src/endpoints/auth/MFA.security.test.ts +9 -7
  11. package/src/endpoints/auth/MFA.test.ts +42 -15
  12. package/src/endpoints/auth/PatchUserEndpoint.ts +3 -2
  13. package/src/endpoints/auth/VerifyEmailEndpoint.ts +5 -4
  14. package/src/endpoints/global/email/GetAdminEmailsEndpoint.test.ts +4 -3
  15. package/src/endpoints/global/email/GetUserEmailsEndpoint.test.ts +6 -5
  16. package/src/endpoints/global/email/PatchEmailEndpoint.test.ts +5 -4
  17. package/src/endpoints/global/email-recipients/GetEmailRecipientsEndpoint.test.ts +5 -4
  18. package/src/endpoints/global/events/PatchEventNotificationsEndpoint.test.ts +2 -1
  19. package/src/endpoints/global/events/PatchEventsEndpoint.test.ts +2 -1
  20. package/src/endpoints/global/files/UploadFile.test.ts +2 -1
  21. package/src/endpoints/global/files/UploadImage.test.ts +2 -1
  22. package/src/endpoints/global/files/upload-security.test.ts +3 -2
  23. package/src/endpoints/global/groups/GetGroupsEndpoint.test.ts +4 -3
  24. package/src/endpoints/global/members/GetMembersEndpoint.test.ts +26 -25
  25. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.test.ts +57 -56
  26. package/src/endpoints/global/members/SendMemberSecurityCodeEndpoint.test.ts +4 -3
  27. package/src/endpoints/global/platform/GetPlatformEndpoint.test.ts +6 -4
  28. package/src/endpoints/global/platform/PatchPlatformEnpoint.test.ts +6 -6
  29. package/src/endpoints/global/platform/SignOutPlatformAdminsEndpoint.test.ts +9 -8
  30. package/src/endpoints/global/registration/GetRegistrationsEndpoint.test.ts +14 -13
  31. package/src/endpoints/global/registration/PatchUserMembersEndpoint.test.ts +24 -23
  32. package/src/endpoints/global/registration/RegisterMembersEndpoint.test.ts +4 -3
  33. package/src/endpoints/global/registration-invitations/GetRegistrationInvitationsEndpoint.test.ts +2 -1
  34. package/src/endpoints/global/registration-invitations/PatchRegistrationInvitationsEndpoint.test.ts +2 -1
  35. package/src/endpoints/global/webshops/GetWebshopsEndpoint.test.ts +20 -19
  36. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemBreakdownEndpoint.test.ts +2 -1
  37. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemsEndpoint.test.ts +2 -1
  38. package/src/endpoints/organization/dashboard/billing/ApplyRegisterCodeEndpoint.test.ts +3 -2
  39. package/src/endpoints/organization/dashboard/documents/PatchDocumentTemplatesEndpoint.test.ts +4 -3
  40. package/src/endpoints/organization/dashboard/email-templates/GetEmailTemplatesEndpoint.test.ts +5 -4
  41. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.test.ts +5 -4
  42. package/src/endpoints/organization/dashboard/invoices/GetInvoicesEndpoint.test.ts +2 -1
  43. package/src/endpoints/organization/dashboard/invoices/PatchInvoicesEndpoint.test.ts +2 -1
  44. package/src/endpoints/organization/dashboard/invoices/PatchInvoicesEndpoint.ts +0 -1
  45. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.test.ts +23 -22
  46. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +4 -4
  47. package/src/endpoints/organization/dashboard/payments/GetPaymentBreakdownEndpoint.test.ts +2 -1
  48. package/src/endpoints/organization/dashboard/payments/GetPaymentsEndpoint.test.ts +4 -3
  49. package/src/endpoints/organization/dashboard/payments/PatchPaymentsEndpoint.ts +2 -2
  50. package/src/endpoints/organization/dashboard/receivable-balances/GetReceivableBalanceEndpoint.test.ts +2 -1
  51. package/src/endpoints/organization/dashboard/registration-periods/GetOrganizationRegistrationPeriodsEndpoint.test.ts +5 -4
  52. package/src/endpoints/organization/dashboard/registration-periods/MoveRegistrationPeriods.test.ts +7 -6
  53. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.test.ts +9 -8
  54. package/src/endpoints/organization/dashboard/settlements/SettlementsExportEndpoint.test.ts +3 -2
  55. package/src/endpoints/organization/dashboard/settlements/SettlementsSyncEndpoint.test.ts +2 -1
  56. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.test.ts +5 -4
  57. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.ts +2 -1
  58. package/src/endpoints/organization/dashboard/users/GetOrganizationAdminsEndpoint.test.ts +3 -2
  59. package/src/endpoints/organization/dashboard/users/PatchApiUserEndpoint.test.ts +6 -5
  60. package/src/endpoints/organization/dashboard/users/SignOutOrganizationAdminsEndpoint.test.ts +16 -15
  61. package/src/endpoints/organization/dashboard/webshops/GetWebshopOrdersEndpoint.test.ts +2 -1
  62. package/src/endpoints/organization/dashboard/webshops/PatchWebshopEndpoint.test.ts +2 -1
  63. package/src/endpoints/organization/dashboard/webshops/PatchWebshopOrdersEndpoint.test.ts +2 -1
  64. package/src/endpoints/organization/dashboard/webshops/WebshopReservedPathSegments.test.ts +2 -1
  65. package/src/endpoints/organization/shared/auth/GetOrganizationEndpoint.test.ts +4 -3
  66. package/src/endpoints/organization/webshops/GetWebshopEndpoint.test.ts +6 -5
  67. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.test.ts +94 -8
  68. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.ts +18 -18
  69. package/src/helpers/Context.ts +13 -6
  70. package/src/helpers/ContextStorage.ts +5 -0
  71. package/src/helpers/StripeSettlementSync.ts +10 -7
  72. package/src/helpers/TwoFactorHelper.ts +21 -22
  73. package/src/services/AdminSessionService.ts +5 -3
  74. package/src/services/InvoiceService.ts +2 -2
  75. package/src/services/MollieService.ts +168 -126
  76. package/src/services/PaymentService.ts +2 -2
  77. package/src/services/SSOService.test.ts +25 -1
  78. package/src/services/SSOService.ts +17 -6
  79. package/src/services/SessionService.test.ts +319 -0
  80. package/src/services/SessionService.ts +357 -0
  81. package/src/services/WebshopCrowdfundingService.test.ts +4 -3
  82. package/src/sql-filters/registrations.ts +59 -1
  83. package/tests/actions/patchUserMember.ts +2 -1
  84. package/tests/e2e/api-rate-limits.test.ts +2 -1
  85. package/tests/e2e/bundle-discounts.test.ts +4 -3
  86. package/tests/e2e/charge-members.test.ts +6 -5
  87. package/tests/e2e/documents.test.ts +4 -3
  88. package/tests/e2e/private-files.test.ts +9 -8
  89. package/tests/e2e/register.test.ts +4 -3
  90. package/tests/e2e/stock.test.ts +4 -3
  91. package/tests/e2e/tickets.test.ts +4 -3
  92. package/tests/helpers/ExportSlice.ts +2 -1
  93. package/tests/helpers/MollieMocker.ts +85 -23
  94. package/tests/init/initAdmin.ts +2 -1
  95. package/tests/init/initPlatformAdmin.ts +2 -1
  96. package/src/helpers/ViesHelper.test.ts +0 -401
  97. package/src/helpers/ViesHelper.ts +0 -222
  98. package/src/services/PeppolDirectoryService.test.ts +0 -139
  99. package/src/services/PeppolDirectoryService.ts +0 -111
@@ -5,6 +5,7 @@ import { AccessRight, EventMeta, GroupType, LimitedFilteredRequest, NamedObject,
5
5
  import { STExpect, TestUtils } from '@stamhoofd/test-utils';
6
6
  import { testServer } from '../../../../tests/helpers/TestServer.js';
7
7
  import { GetRegistrationsEndpoint } from './GetRegistrationsEndpoint.js';
8
+ import { SessionService } from '../../../services/SessionService.js';
8
9
 
9
10
  const baseUrl = `/registrations`;
10
11
  const endpoint = new GetRegistrationsEndpoint();
@@ -48,7 +49,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
48
49
  })
49
50
  .create();
50
51
 
51
- const token = await Token.createToken(user);
52
+ const token = await SessionService.createSession(user);
52
53
  const member1 = await new MemberFactory({ }).create();
53
54
  const member2 = await new MemberFactory({ }).create();
54
55
  const group = await new GroupFactory({ organization, period }).create();
@@ -117,7 +118,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
117
118
  })
118
119
  .create();
119
120
 
120
- const token = await Token.createToken(user);
121
+ const token = await SessionService.createSession(user);
121
122
  const member1 = await new MemberFactory({ }).create();
122
123
  const member2 = await new MemberFactory({ }).create();
123
124
  const group = await new GroupFactory({ organization, period }).create();
@@ -182,7 +183,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
182
183
  })
183
184
  .create();
184
185
 
185
- const token = await Token.createToken(user);
186
+ const token = await SessionService.createSession(user);
186
187
  const member1 = await new MemberFactory({ }).create();
187
188
  const member2 = await new MemberFactory({ }).create();
188
189
  const group = await new GroupFactory({ organization, period }).create();
@@ -259,7 +260,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
259
260
  })
260
261
  .create();
261
262
 
262
- const token = await Token.createToken(user);
263
+ const token = await SessionService.createSession(user);
263
264
  const member1 = await new MemberFactory({ }).create();
264
265
  const member2 = await new MemberFactory({ }).create();
265
266
  const group = await new GroupFactory({ organization, period }).create();
@@ -326,7 +327,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
326
327
  })
327
328
  .create();
328
329
 
329
- const token = await Token.createToken(user);
330
+ const token = await SessionService.createSession(user);
330
331
  const member1 = await new MemberFactory({ }).create();
331
332
  const member2 = await new MemberFactory({ }).create();
332
333
  const member3 = await new MemberFactory({ }).create();
@@ -401,7 +402,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
401
402
  })
402
403
  .create();
403
404
 
404
- const token = await Token.createToken(user);
405
+ const token = await SessionService.createSession(user);
405
406
  const member1 = await new MemberFactory({ }).create();
406
407
  const member2 = await new MemberFactory({ }).create();
407
408
  const member3 = await new MemberFactory({ }).create();
@@ -456,7 +457,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
456
457
  })
457
458
  .create();
458
459
 
459
- const token = await Token.createToken(user);
460
+ const token = await SessionService.createSession(user);
460
461
  const member1 = await new MemberFactory({ }).create();
461
462
  const member2 = await new MemberFactory({ }).create();
462
463
 
@@ -542,7 +543,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
542
543
  })
543
544
  .create();
544
545
 
545
- const token = await Token.createToken(user);
546
+ const token = await SessionService.createSession(user);
546
547
  const member1 = await new MemberFactory({ }).create();
547
548
  const member2 = await new MemberFactory({ }).create();
548
549
  const member3 = await new MemberFactory({ }).create();
@@ -632,7 +633,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
632
633
  })
633
634
  .create();
634
635
 
635
- const token = await Token.createToken(user);
636
+ const token = await SessionService.createSession(user);
636
637
  const member1 = await new MemberFactory({ }).create();
637
638
  const member2 = await new MemberFactory({ }).create();
638
639
 
@@ -713,7 +714,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
713
714
  })
714
715
  .create();
715
716
 
716
- const token = await Token.createToken(user);
717
+ const token = await SessionService.createSession(user);
717
718
  const member1 = await new MemberFactory({ }).create();
718
719
  const member2 = await new MemberFactory({ }).create();
719
720
 
@@ -788,7 +789,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
788
789
  })
789
790
  .create();
790
791
 
791
- const token = await Token.createToken(user);
792
+ const token = await SessionService.createSession(user);
792
793
  const member1 = await new MemberFactory({ }).create();
793
794
  const member2 = await new MemberFactory({ }).create();
794
795
  const member3 = await new MemberFactory({ }).create();
@@ -875,7 +876,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
875
876
  })
876
877
  .create();
877
878
 
878
- const token = await Token.createToken(user);
879
+ const token = await SessionService.createSession(user);
879
880
  const member1 = await new MemberFactory({ }).create();
880
881
  const member2 = await new MemberFactory({ }).create();
881
882
  const member3 = await new MemberFactory({ }).create();
@@ -961,7 +962,7 @@ describe('Endpoint.GetRegistrationsEndpoint', () => {
961
962
  })
962
963
  .create();
963
964
 
964
- const token = await Token.createToken(user);
965
+ const token = await SessionService.createSession(user);
965
966
  const member1 = await new MemberFactory({ }).create();
966
967
  const member2 = await new MemberFactory({ }).create();
967
968
  const member3 = await new MemberFactory({ }).create();
@@ -11,6 +11,7 @@ import { testServer } from '../../../../tests/helpers/TestServer.js';
11
11
  import { initUitpasApi } from '../../../../tests/init/index.js';
12
12
  import { PatchUserMembersEndpoint } from './PatchUserMembersEndpoint.js';
13
13
  import { MemberUserSyncer } from '../../../helpers/MemberUserSyncer.js';
14
+ import { SessionService } from '../../../services/SessionService.js';
14
15
 
15
16
  const baseUrl = `/members`;
16
17
  const endpoint = new PatchUserMembersEndpoint();
@@ -44,7 +45,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
44
45
  existingMember.details.nationalRegisterNumber = '123454123';
45
46
  await existingMember.save();
46
47
 
47
- const token = await Token.createToken(user);
48
+ const token = await SessionService.createSession(user);
48
49
 
49
50
  const arr: Body = new PatchableArray();
50
51
  const put = MemberWithRegistrationsBlob.create({
@@ -73,7 +74,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
73
74
  generateData: false,
74
75
  }).create();
75
76
 
76
- const token = await Token.createToken(user);
77
+ const token = await SessionService.createSession(user);
77
78
 
78
79
  const arr: Body = new PatchableArray();
79
80
  const newBirthDay = new Date(existingMember.details.birthDay!.getTime() + 1);
@@ -137,7 +138,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
137
138
  group,
138
139
  }).create();
139
140
 
140
- const token = await Token.createToken(user);
141
+ const token = await SessionService.createSession(user);
141
142
 
142
143
  const arr: Body = new PatchableArray();
143
144
  const newBirthDay = new Date(existingMember.details.birthDay!.getTime() + 1);
@@ -185,7 +186,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
185
186
  const organization = await new OrganizationFactory({ }).create();
186
187
  const user = await new UserFactory({ organization }).create();
187
188
 
188
- const token = await Token.createToken(user);
189
+ const token = await SessionService.createSession(user);
189
190
 
190
191
  const arr: Body = new PatchableArray();
191
192
  const put = MemberWithRegistrationsBlob.create({
@@ -238,7 +239,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
238
239
  // Check access
239
240
  expect(existingMember.users).toHaveLength(1);
240
241
 
241
- const token = await Token.createToken(user);
242
+ const token = await SessionService.createSession(user);
242
243
 
243
244
  const arr: Body = new PatchableArray();
244
245
  const newBirthDay = new Date(existingMember.details.birthDay!.getTime() + 1000);
@@ -302,7 +303,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
302
303
  user,
303
304
  }).create();
304
305
 
305
- const token = await Token.createToken(user);
306
+ const token = await SessionService.createSession(user);
306
307
 
307
308
  const recordAnswers = new PatchMap() as PatchAnswers;
308
309
 
@@ -363,7 +364,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
363
364
  user,
364
365
  }).create();
365
366
 
366
- const token = await Token.createToken(user);
367
+ const token = await SessionService.createSession(user);
367
368
 
368
369
  const recordAnswers = new PatchMap() as PatchAnswers;
369
370
 
@@ -414,7 +415,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
414
415
  user,
415
416
  }).create();
416
417
 
417
- const token = await Token.createToken(user);
418
+ const token = await SessionService.createSession(user);
418
419
 
419
420
  const recordAnswers = new PatchMap() as PatchAnswers;
420
421
 
@@ -474,7 +475,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
474
475
  user,
475
476
  }).create();
476
477
 
477
- const token = await Token.createToken(user);
478
+ const token = await SessionService.createSession(user);
478
479
 
479
480
  const recordAnswers = new PatchMap() as PatchAnswers;
480
481
 
@@ -520,7 +521,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
520
521
  user,
521
522
  }).create();
522
523
 
523
- const token = await Token.createToken(user);
524
+ const token = await SessionService.createSession(user);
524
525
 
525
526
  const recordAnswers = new PatchMap() as PatchAnswers;
526
527
 
@@ -551,7 +552,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
551
552
 
552
553
  const user = await new UserFactory({ }).create();
553
554
 
554
- const token = await Token.createToken(user);
555
+ const token = await SessionService.createSession(user);
555
556
 
556
557
  const organization = await new OrganizationFactory({}).create();
557
558
 
@@ -597,7 +598,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
597
598
 
598
599
  const user = await new UserFactory({ }).create();
599
600
 
600
- const token = await Token.createToken(user);
601
+ const token = await SessionService.createSession(user);
601
602
 
602
603
  // create member
603
604
  const member = await new MemberFactory({
@@ -652,7 +653,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
652
653
 
653
654
  const user = await new UserFactory({ }).create();
654
655
 
655
- const token = await Token.createToken(user);
656
+ const token = await SessionService.createSession(user);
656
657
 
657
658
  // create member
658
659
  const member = await new MemberFactory({
@@ -703,7 +704,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
703
704
 
704
705
  const user = await new UserFactory({ }).create();
705
706
 
706
- const token = await Token.createToken(user);
707
+ const token = await SessionService.createSession(user);
707
708
 
708
709
  // create member
709
710
  const member = await new MemberFactory({
@@ -753,7 +754,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
753
754
 
754
755
  const user = await new UserFactory({ }).create();
755
756
 
756
- const token = await Token.createToken(user);
757
+ const token = await SessionService.createSession(user);
757
758
 
758
759
  // create member
759
760
  const member = await new MemberFactory({
@@ -811,7 +812,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
811
812
 
812
813
  const user = await new UserFactory({ }).create();
813
814
 
814
- const token = await Token.createToken(user);
815
+ const token = await SessionService.createSession(user);
815
816
 
816
817
  // create member
817
818
  const member = await new MemberFactory({
@@ -867,7 +868,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
867
868
 
868
869
  const user = await new UserFactory({ }).create();
869
870
 
870
- const token = await Token.createToken(user);
871
+ const token = await SessionService.createSession(user);
871
872
 
872
873
  // create member
873
874
  const member = await new MemberFactory({
@@ -925,7 +926,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
925
926
 
926
927
  const user = await new UserFactory({ }).create();
927
928
 
928
- const token = await Token.createToken(user);
929
+ const token = await SessionService.createSession(user);
929
930
 
930
931
  // create member
931
932
  const member = await new MemberFactory({
@@ -988,7 +989,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
988
989
 
989
990
  const user = await new UserFactory({ }).create();
990
991
 
991
- const token = await Token.createToken(user);
992
+ const token = await SessionService.createSession(user);
992
993
 
993
994
  // create member
994
995
  const member = await new MemberFactory({
@@ -1042,7 +1043,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
1042
1043
 
1043
1044
  const user = await new UserFactory({ }).create();
1044
1045
 
1045
- const token = await Token.createToken(user);
1046
+ const token = await SessionService.createSession(user);
1046
1047
 
1047
1048
  // create member
1048
1049
  const member = await new MemberFactory({
@@ -1090,7 +1091,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
1090
1091
 
1091
1092
  const user = await new UserFactory({ }).create();
1092
1093
 
1093
- const token = await Token.createToken(user);
1094
+ const token = await SessionService.createSession(user);
1094
1095
 
1095
1096
  // create member
1096
1097
  const member = await new MemberFactory({
@@ -1148,7 +1149,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
1148
1149
 
1149
1150
  const user = await new UserFactory({ }).create();
1150
1151
 
1151
- const token = await Token.createToken(user);
1152
+ const token = await SessionService.createSession(user);
1152
1153
 
1153
1154
  // create member
1154
1155
  const member = await new MemberFactory({
@@ -1212,7 +1213,7 @@ describe('Endpoint.PatchUserMembersEndpoint', () => {
1212
1213
  // Give user access to this member
1213
1214
  user,
1214
1215
  }).create();
1215
- const token = await Token.createToken(user);
1216
+ const token = await SessionService.createSession(user);
1216
1217
  return { organization, user, member, token };
1217
1218
  }
1218
1219
 
@@ -1,8 +1,8 @@
1
1
  import { PatchMap } from '@simonbackx/simple-encoding';
2
2
  import { Request } from '@simonbackx/simple-endpoints';
3
3
  import { EmailMocker } from '@stamhoofd/email';
4
- import type { MemberWithUsersRegistrationsAndGroups, Organization, RegistrationPeriod } from '@stamhoofd/models';
5
- import { BalanceItem, BalanceItemFactory, Group, GroupFactory, Member, MemberFactory, OrganizationFactory, OrganizationRegistrationPeriodFactory, Registration, RegistrationFactory, RegistrationPeriodFactory, Token, UserFactory } from '@stamhoofd/models';
4
+ import type { MemberWithUsersRegistrationsAndGroups, Organization, RegistrationPeriod, Token } from '@stamhoofd/models';
5
+ import { BalanceItem, BalanceItemFactory, Group, GroupFactory, Member, MemberFactory, OrganizationFactory, OrganizationRegistrationPeriodFactory, Registration, RegistrationFactory, RegistrationPeriodFactory, UserFactory } from '@stamhoofd/models';
6
6
  import { AccessRight, BalanceItemCartItem, BalanceItemRelationType, BalanceItemStatus, BalanceItemType, BooleanStatus, Company, GroupOption, GroupOptionMenu, IDRegisterCart, IDRegisterCheckout, IDRegisterItem, OrganizationPackages, PaymentCustomer, PaymentMethod, PermissionLevel, Permissions, PermissionsResourceType, ReduceablePrice, RegisterItemOption, ResourcePermissions, STPackageStatus, STPackageType, UitpasNumberDetails, UitpasSocialTariff, UitpasSocialTariffStatus, UserPermissions, Version } from '@stamhoofd/structures';
7
7
  import { STExpect, TestUtils } from '@stamhoofd/test-utils';
8
8
  import { v4 as uuidv4 } from 'uuid';
@@ -12,6 +12,7 @@ import { initAdmin, initPermissionRole, initUitpasApi } from '../../../../tests/
12
12
  import { initPayconiq } from '../../../../tests/init/initPayconiq.js';
13
13
  import { BalanceItemService } from '../../../services/BalanceItemService.js';
14
14
  import { RegisterMembersEndpoint } from './RegisterMembersEndpoint.js';
15
+ import { SessionService } from '../../../services/SessionService.js';
15
16
 
16
17
  const baseUrl = `/v${Version}/members/register`;
17
18
 
@@ -76,7 +77,7 @@ describe('Endpoint.RegisterMembers', () => {
76
77
  })
77
78
  .create();
78
79
 
79
- const token = await Token.createToken(user);
80
+ const token = await SessionService.createSession(user);
80
81
 
81
82
  const member = await new MemberFactory({ organization, user: linkMembersToUser ? user : undefined })
82
83
  .create();
@@ -6,6 +6,7 @@ import { LimitedFilteredRequest, PermissionLevel, Permissions, PermissionsResour
6
6
  import { TestUtils } from '@stamhoofd/test-utils';
7
7
  import { testServer } from '../../../../tests/helpers/TestServer.js';
8
8
  import { GetRegistrationInvitationsEndpoint } from './GetRegistrationInvitationsEndpoint.js';
9
+ import { SessionService } from '../../../services/SessionService.js';
9
10
 
10
11
  describe('Endpoint.GetRegistrationInvitationsEndpoint', () => {
11
12
  const endpoint = new GetRegistrationInvitationsEndpoint();
@@ -14,7 +15,7 @@ describe('Endpoint.GetRegistrationInvitationsEndpoint', () => {
14
15
  let authorization = '';
15
16
 
16
17
  if (user) {
17
- const token = await Token.createToken(user);
18
+ const token = await SessionService.createSession(user);
18
19
  authorization = 'Bearer ' + token.accessToken;
19
20
  }
20
21
 
@@ -8,6 +8,7 @@ import { GroupType, PermissionLevel, Permissions, PermissionsResourceType, Regis
8
8
  import { STExpect, TestUtils } from '@stamhoofd/test-utils';
9
9
  import { testServer } from '../../../../tests/helpers/TestServer.js';
10
10
  import { PatchRegistrationInvitationsEndpoint } from './PatchRegistrationInvitationsEndpoint.js';
11
+ import { SessionService } from '../../../services/SessionService.js';
11
12
 
12
13
  describe('Endpoint.PatchRegistrationInvitationsEndpoint', () => {
13
14
  const endpoint = new PatchRegistrationInvitationsEndpoint();
@@ -15,7 +16,7 @@ describe('Endpoint.PatchRegistrationInvitationsEndpoint', () => {
15
16
  const patchInvitations = async ({ patch, organization, user }: { patch: PatchableArrayAutoEncoder<RegistrationInvitationRequest>; organization: Organization | null; user: User | null }) => {
16
17
  const request = Request.buildJson('PATCH', '/registration-invitations', organization?.getApiHost(), patch);
17
18
  if (user) {
18
- const token = await Token.createToken(user);
19
+ const token = await SessionService.createSession(user);
19
20
  request.headers.authorization = 'Bearer ' + token.accessToken;
20
21
  }
21
22
  return await testServer.test<RegistrationInvitationStruct[]>(endpoint, request);
@@ -7,6 +7,7 @@ import { STExpect, TestUtils } from '@stamhoofd/test-utils';
7
7
  import { testServer } from '../../../../tests/helpers/TestServer.js';
8
8
  import { GetWebshopsCountEndpoint } from './GetWebshopsCountEndpoint.js';
9
9
  import { GetWebshopsEndpoint } from './GetWebshopsEndpoint.js';
10
+ import { SessionService } from '../../../services/SessionService.js';
10
11
 
11
12
  const baseUrl = '/webshops';
12
13
  const endpoint = new GetWebshopsEndpoint();
@@ -30,7 +31,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
30
31
  }),
31
32
  }).create();
32
33
 
33
- const token = await Token.createToken(user);
34
+ const token = await SessionService.createSession(user);
34
35
 
35
36
  const webshop1 = await new WebshopFactory({ organizationId: organization.id, name: 'Webshop A' }).create();
36
37
  const webshop2 = await new WebshopFactory({ organizationId: organization.id, name: 'Webshop B' }).create();
@@ -75,7 +76,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
75
76
  }),
76
77
  }).create();
77
78
 
78
- const token = await Token.createToken(user);
79
+ const token = await SessionService.createSession(user);
79
80
 
80
81
  const request = Request.get({
81
82
  path: baseUrl,
@@ -101,7 +102,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
101
102
  }),
102
103
  }).create();
103
104
 
104
- const token = await Token.createToken(user);
105
+ const token = await SessionService.createSession(user);
105
106
 
106
107
  const request = Request.get({
107
108
  path: baseUrl,
@@ -142,7 +143,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
142
143
  globalPermissions: Permissions.create({ level: PermissionLevel.Full }),
143
144
  }).create();
144
145
 
145
- const token = await Token.createToken(platformAdmin);
146
+ const token = await SessionService.createSession(platformAdmin);
146
147
 
147
148
  const request = Request.get({
148
149
  path: baseUrl,
@@ -170,7 +171,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
170
171
  globalPermissions: Permissions.create({ level: PermissionLevel.None }),
171
172
  }).create();
172
173
 
173
- const token = await Token.createToken(platformUser);
174
+ const token = await SessionService.createSession(platformUser);
174
175
 
175
176
  const request = Request.get({
176
177
  path: baseUrl,
@@ -209,7 +210,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
209
210
  }),
210
211
  }).create();
211
212
 
212
- const token = await Token.createToken(platformUser);
213
+ const token = await SessionService.createSession(platformUser);
213
214
 
214
215
  const request = Request.get({
215
216
  path: baseUrl,
@@ -256,7 +257,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
256
257
  }),
257
258
  }).create();
258
259
 
259
- const token = await Token.createToken(platformUser);
260
+ const token = await SessionService.createSession(platformUser);
260
261
 
261
262
  const request = Request.get({
262
263
  path: baseUrl,
@@ -289,7 +290,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
289
290
  permissions: Permissions.create({ level: PermissionLevel.Full }),
290
291
  }).create();
291
292
 
292
- const token = await Token.createToken(user);
293
+ const token = await SessionService.createSession(user);
293
294
 
294
295
  const webshop1 = await new WebshopFactory({ organizationId: organization.id }).create();
295
296
  const webshop2 = await new WebshopFactory({ organizationId: organization.id }).create();
@@ -318,7 +319,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
318
319
  permissions: Permissions.create({ level: PermissionLevel.Full }),
319
320
  }).create();
320
321
 
321
- const token = await Token.createToken(user);
322
+ const token = await SessionService.createSession(user);
322
323
 
323
324
  const webshop1 = await new WebshopFactory({ organizationId: organization.id, name: 'Summer Sale' }).create();
324
325
  const webshop2 = await new WebshopFactory({ organizationId: organization.id, name: 'Winter Collection' }).create();
@@ -350,7 +351,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
350
351
  permissions: Permissions.create({ level: PermissionLevel.Full }),
351
352
  }).create();
352
353
 
353
- const token = await Token.createToken(user);
354
+ const token = await SessionService.createSession(user);
354
355
 
355
356
  const closedWebshop = await new WebshopFactory({
356
357
  organizationId: organization.id,
@@ -398,7 +399,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
398
399
  permissions: Permissions.create({ level: PermissionLevel.Full }),
399
400
  }).create();
400
401
 
401
- const token = await Token.createToken(user);
402
+ const token = await SessionService.createSession(user);
402
403
 
403
404
  // Create 5 webshops
404
405
  const webshops = await Promise.all(
@@ -468,7 +469,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
468
469
  permissions: Permissions.create({ level: PermissionLevel.Full }),
469
470
  }).create();
470
471
 
471
- const token = await Token.createToken(user);
472
+ const token = await SessionService.createSession(user);
472
473
 
473
474
  // Create webshops with deterministic names for ordering
474
475
  const names = ['Apple Shop', 'Banana Market', 'Cherry Stand', 'Date Store', 'Elderberry Emporium'];
@@ -516,7 +517,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
516
517
  permissions: Permissions.create({ level: PermissionLevel.Full }),
517
518
  }).create();
518
519
 
519
- const token = await Token.createToken(user);
520
+ const token = await SessionService.createSession(user);
520
521
 
521
522
  await new WebshopFactory({ organizationId: organization.id }).create();
522
523
  await new WebshopFactory({ organizationId: organization.id }).create();
@@ -543,7 +544,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
543
544
  permissions: Permissions.create({ level: PermissionLevel.Full }),
544
545
  }).create();
545
546
 
546
- const token = await Token.createToken(user);
547
+ const token = await SessionService.createSession(user);
547
548
 
548
549
  const webshop1 = await new WebshopFactory({ organizationId: organization.id, name: 'Alpha' }).create();
549
550
  const webshop2 = await new WebshopFactory({ organizationId: organization.id, name: 'Beta' }).create();
@@ -609,7 +610,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
609
610
  }),
610
611
  }).create();
611
612
 
612
- const token = await Token.createToken(user);
613
+ const token = await SessionService.createSession(user);
613
614
 
614
615
  // Use a small page size (10) so we exercise multiple pages.
615
616
  const pageSize = 10;
@@ -666,7 +667,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
666
667
  organization,
667
668
  permissions: Permissions.create({ level: PermissionLevel.Full }),
668
669
  }).create();
669
- const token = await Token.createToken(user);
670
+ const token = await SessionService.createSession(user);
670
671
 
671
672
  await new WebshopFactory({ organizationId: organization.id, name: 'Open Webshop' }).create();
672
673
  const closedWebshop = await new WebshopFactory({
@@ -702,7 +703,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
702
703
  organization,
703
704
  permissions: Permissions.create({ level: PermissionLevel.Full }),
704
705
  }).create();
705
- const token = await Token.createToken(user);
706
+ const token = await SessionService.createSession(user);
706
707
 
707
708
  const openWebshop = await new WebshopFactory({ organizationId: organization.id, name: 'Open Webshop' }).create();
708
709
  await new WebshopFactory({
@@ -740,7 +741,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
740
741
  organization,
741
742
  permissions: Permissions.create({ level: PermissionLevel.Full }),
742
743
  }).create();
743
- const token = await Token.createToken(user);
744
+ const token = await SessionService.createSession(user);
744
745
 
745
746
  await new WebshopFactory({ organizationId: organization.id, name: 'Open Webshop' }).create();
746
747
  await new WebshopFactory({
@@ -782,7 +783,7 @@ describe('Endpoint.GetWebshopsEndpoint', () => {
782
783
  const platformUser = await new UserFactory({
783
784
  globalPermissions: Permissions.create({ level: PermissionLevel.Full }),
784
785
  }).create();
785
- const token = await Token.createToken(platformUser);
786
+ const token = await SessionService.createSession(platformUser);
786
787
 
787
788
  const request = Request.get({
788
789
  path: baseUrl,
@@ -10,12 +10,13 @@ import { exportSlice } from '../../../../../tests/helpers/ExportSlice.js';
10
10
  import { testServer } from '../../../../../tests/helpers/TestServer.js';
11
11
  import { GetBalanceItemBreakdownEndpoint } from './GetBalanceItemBreakdownEndpoint.js';
12
12
  import { GetBalanceItemEndpoint } from './GetBalanceItemEndpoint.js';
13
+ import { SessionService } from '../../../../services/SessionService.js';
13
14
 
14
15
  describe('Endpoint.GetBalanceItemBreakdownEndpoint', () => {
15
16
  const endpoint = new GetBalanceItemBreakdownEndpoint();
16
17
 
17
18
  const getBreakdown = async ({ filter, path, organization, user }: { filter?: StamhoofdFilter; path?: BreakdownPathItem[]; organization: Organization; user: User }) => {
18
- const token = await Token.createToken(user);
19
+ const token = await SessionService.createSession(user);
19
20
 
20
21
  const request = Request.get({
21
22
  path: '/balance-items/breakdown',
@@ -5,12 +5,13 @@ import type { BalanceItem as BalanceItemStruct, PaginatedResponse, StamhoofdFilt
5
5
  import { BalanceItemRelation, BalanceItemRelationType, BalanceItemType, LimitedFilteredRequest, PermissionLevel, Permissions, TranslatedString } from '@stamhoofd/structures';
6
6
  import { testServer } from '../../../../../tests/helpers/TestServer.js';
7
7
  import { GetBalanceItemsEndpoint } from './GetBalanceItemsEndpoint.js';
8
+ import { SessionService } from '../../../../services/SessionService.js';
8
9
 
9
10
  describe('Endpoint.GetBalanceItemsEndpoint', () => {
10
11
  const endpoint = new GetBalanceItemsEndpoint();
11
12
 
12
13
  const getBalanceItems = async ({ filter, organization, user }: { filter: StamhoofdFilter | null; organization: Organization; user: User }) => {
13
- const token = await Token.createToken(user);
14
+ const token = await SessionService.createSession(user);
14
15
 
15
16
  const request = Request.get({
16
17
  path: '/balance-items',
@@ -1,6 +1,7 @@
1
1
  import { Request } from '@simonbackx/simple-endpoints';
2
2
  import { BalanceItem, OrganizationFactory, RegisterCodeFactory, Token, UserFactory } from '@stamhoofd/models';
3
3
  import { PermissionLevel, Permissions } from '@stamhoofd/structures';
4
+ import { SessionService } from '../../../../services/SessionService.js';
4
5
 
5
6
  import { testServer } from '../../../../../tests/helpers/TestServer.js';
6
7
  import { ApplyRegisterCodeEndpoint } from './ApplyRegisterCodeEndpoint.js';
@@ -20,7 +21,7 @@ describe('Endpoint.ApplyRegisterCodeEndpoint', () => {
20
21
 
21
22
  const organization = await new OrganizationFactory({}).create();
22
23
  const user = await new UserFactory({ organization, permissions: Permissions.create({ level: PermissionLevel.Full }) }).create();
23
- const token = await Token.createToken(user);
24
+ const token = await SessionService.createSession(user);
24
25
 
25
26
  const r = Request.buildJson(
26
27
  'POST',
@@ -45,7 +46,7 @@ describe('Endpoint.ApplyRegisterCodeEndpoint', () => {
45
46
  globalPermissions: Permissions.create({ level: PermissionLevel.Full }),
46
47
  email: 'admin@stamhoofd.be',
47
48
  }).create();
48
- const token = await Token.createToken(user);
49
+ const token = await SessionService.createSession(user);
49
50
 
50
51
  const r = Request.buildJson(
51
52
  'POST',
@@ -1,13 +1,14 @@
1
1
  import { PatchableArray } from '@simonbackx/simple-encoding';
2
2
  import type { Endpoint } from '@simonbackx/simple-endpoints';
3
3
  import { Request } from '@simonbackx/simple-endpoints';
4
- import type { Organization, RegistrationPeriod, User } from '@stamhoofd/models';
5
- import { DocumentTemplate, DocumentTemplateFactory, OrganizationFactory, RegistrationPeriodFactory, Token, UserFactory } from '@stamhoofd/models';
4
+ import type { Organization, RegistrationPeriod, User, Token } from '@stamhoofd/models';
5
+ import { DocumentTemplate, DocumentTemplateFactory, OrganizationFactory, RegistrationPeriodFactory, UserFactory } from '@stamhoofd/models';
6
6
  import { SQL } from '@stamhoofd/sql';
7
7
  import { DocumentPrivateSettings, DocumentStatus, DocumentTemplateDefinition, DocumentTemplatePrivate, PermissionLevel, Permissions } from '@stamhoofd/structures';
8
8
  import { STExpect, TestUtils } from '@stamhoofd/test-utils';
9
9
  import { testServer } from '../../../../../tests/helpers/TestServer.js';
10
10
  import { PatchDocumentTemplatesEndpoint } from './PatchDocumentTemplatesEndpoint.js';
11
+ import { SessionService } from '../../../../services/SessionService.js';
11
12
 
12
13
  const baseUrl = `/organization/document-templates`;
13
14
  const endpoint = new PatchDocumentTemplatesEndpoint();
@@ -40,7 +41,7 @@ describe('Endpoint.PatchDocumentTemplatesEndpoint', () => {
40
41
  }),
41
42
  }).create();
42
43
 
43
- token = await Token.createToken(user);
44
+ token = await SessionService.createSession(user);
44
45
  });
45
46
 
46
47
  describe('put fiscal document', () => {