@stamhoofd/backend 2.143.1 → 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 (111) hide show
  1. package/package.json +19 -19
  2. package/src/crons/fake-settlements.test.ts +13 -11
  3. package/src/crons/fake-settlements.ts +22 -38
  4. package/src/crons/mollie-chargebacks.ts +31 -29
  5. package/src/crons/mollie-refunds.ts +61 -59
  6. package/src/endpoints/admin/organizations/PatchOrganizationsEndpoint.ts +16 -5
  7. package/src/endpoints/auth/CreateTokenEndpoint.test.ts +210 -4
  8. package/src/endpoints/auth/CreateTokenEndpoint.ts +9 -20
  9. package/src/endpoints/auth/DeleteTokenEndpoint.test.ts +29 -0
  10. package/src/endpoints/auth/DeleteTokenEndpoint.ts +2 -1
  11. package/src/endpoints/auth/GetUserEndpoint.test.ts +32 -11
  12. package/src/endpoints/auth/MFA.security.test.ts +9 -7
  13. package/src/endpoints/auth/MFA.test.ts +42 -15
  14. package/src/endpoints/auth/PatchUserEndpoint.ts +3 -2
  15. package/src/endpoints/auth/VerifyEmailEndpoint.ts +5 -4
  16. package/src/endpoints/global/email/GetAdminEmailsEndpoint.test.ts +4 -3
  17. package/src/endpoints/global/email/GetUserEmailsEndpoint.test.ts +6 -5
  18. package/src/endpoints/global/email/PatchEmailEndpoint.test.ts +5 -4
  19. package/src/endpoints/global/email-recipients/GetEmailRecipientsEndpoint.test.ts +5 -4
  20. package/src/endpoints/global/events/PatchEventNotificationsEndpoint.test.ts +2 -1
  21. package/src/endpoints/global/events/PatchEventsEndpoint.test.ts +2 -1
  22. package/src/endpoints/global/files/UploadFile.test.ts +2 -1
  23. package/src/endpoints/global/files/UploadFile.ts +53 -25
  24. package/src/endpoints/global/files/UploadImage.test.ts +2 -1
  25. package/src/endpoints/global/files/UploadImage.ts +32 -6
  26. package/src/endpoints/global/files/upload-security.test.ts +3 -2
  27. package/src/endpoints/global/groups/GetGroupsEndpoint.test.ts +4 -3
  28. package/src/endpoints/global/members/GetMembersEndpoint.test.ts +26 -25
  29. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.test.ts +57 -56
  30. package/src/endpoints/global/members/SendMemberSecurityCodeEndpoint.test.ts +4 -3
  31. package/src/endpoints/global/platform/GetPlatformEndpoint.test.ts +6 -4
  32. package/src/endpoints/global/platform/PatchPlatformEnpoint.test.ts +6 -6
  33. package/src/endpoints/global/platform/SignOutPlatformAdminsEndpoint.test.ts +9 -8
  34. package/src/endpoints/global/registration/GetRegistrationsEndpoint.test.ts +14 -13
  35. package/src/endpoints/global/registration/PatchUserMembersEndpoint.test.ts +24 -23
  36. package/src/endpoints/global/registration/RegisterMembersEndpoint.test.ts +4 -3
  37. package/src/endpoints/global/registration-invitations/GetRegistrationInvitationsEndpoint.test.ts +2 -1
  38. package/src/endpoints/global/registration-invitations/PatchRegistrationInvitationsEndpoint.test.ts +2 -1
  39. package/src/endpoints/global/webshops/GetWebshopsEndpoint.test.ts +20 -19
  40. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemBreakdownEndpoint.test.ts +2 -1
  41. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemsEndpoint.test.ts +2 -1
  42. package/src/endpoints/organization/dashboard/billing/ApplyRegisterCodeEndpoint.test.ts +3 -2
  43. package/src/endpoints/organization/dashboard/documents/PatchDocumentTemplatesEndpoint.test.ts +4 -3
  44. package/src/endpoints/organization/dashboard/email-templates/GetEmailTemplatesEndpoint.test.ts +5 -4
  45. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.test.ts +5 -4
  46. package/src/endpoints/organization/dashboard/invoices/GetInvoicesEndpoint.test.ts +2 -1
  47. package/src/endpoints/organization/dashboard/invoices/PatchInvoicesEndpoint.test.ts +2 -1
  48. package/src/endpoints/organization/dashboard/invoices/PatchInvoicesEndpoint.ts +0 -1
  49. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.test.ts +23 -22
  50. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +4 -4
  51. package/src/endpoints/organization/dashboard/payments/GetPaymentBreakdownEndpoint.test.ts +2 -1
  52. package/src/endpoints/organization/dashboard/payments/GetPaymentsEndpoint.test.ts +4 -3
  53. package/src/endpoints/organization/dashboard/payments/PatchPaymentsEndpoint.ts +2 -2
  54. package/src/endpoints/organization/dashboard/receivable-balances/GetReceivableBalanceEndpoint.test.ts +2 -1
  55. package/src/endpoints/organization/dashboard/registration-periods/GetOrganizationRegistrationPeriodsEndpoint.test.ts +5 -4
  56. package/src/endpoints/organization/dashboard/registration-periods/MoveRegistrationPeriods.test.ts +7 -6
  57. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.test.ts +9 -8
  58. package/src/endpoints/organization/dashboard/settlements/SettlementsExportEndpoint.test.ts +3 -2
  59. package/src/endpoints/organization/dashboard/settlements/SettlementsSyncEndpoint.test.ts +2 -1
  60. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.test.ts +5 -4
  61. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.ts +2 -1
  62. package/src/endpoints/organization/dashboard/users/GetOrganizationAdminsEndpoint.test.ts +3 -2
  63. package/src/endpoints/organization/dashboard/users/PatchApiUserEndpoint.test.ts +6 -5
  64. package/src/endpoints/organization/dashboard/users/SignOutOrganizationAdminsEndpoint.test.ts +16 -15
  65. package/src/endpoints/organization/dashboard/webshops/GetWebshopOrdersEndpoint.test.ts +2 -1
  66. package/src/endpoints/organization/dashboard/webshops/PatchWebshopEndpoint.test.ts +2 -1
  67. package/src/endpoints/organization/dashboard/webshops/PatchWebshopOrdersEndpoint.test.ts +2 -1
  68. package/src/endpoints/organization/dashboard/webshops/WebshopReservedPathSegments.test.ts +2 -1
  69. package/src/endpoints/organization/shared/auth/GetOrganizationEndpoint.test.ts +4 -3
  70. package/src/endpoints/organization/webshops/GetWebshopEndpoint.test.ts +6 -5
  71. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.test.ts +94 -8
  72. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.ts +18 -18
  73. package/src/helpers/ApplicationFeeInvoicer.ts +1 -1
  74. package/src/helpers/Context.ts +14 -21
  75. package/src/helpers/ContextStorage.ts +5 -0
  76. package/src/helpers/MollieSettlementSync.test.ts +94 -41
  77. package/src/helpers/MollieSettlementSync.ts +174 -78
  78. package/src/helpers/StripeSettlementSync.test.ts +0 -85
  79. package/src/helpers/StripeSettlementSync.ts +47 -70
  80. package/src/helpers/TwoFactorHelper.ts +21 -22
  81. package/src/helpers/streamForBreakdown.ts +1 -1
  82. package/src/services/AdminSessionService.ts +5 -3
  83. package/src/services/InvoiceService.ts +2 -2
  84. package/src/services/MollieService.ts +168 -126
  85. package/src/services/PaymentService.ts +2 -2
  86. package/src/services/SSOService.test.ts +25 -1
  87. package/src/services/SSOService.ts +17 -6
  88. package/src/services/SessionService.test.ts +319 -0
  89. package/src/services/SessionService.ts +357 -0
  90. package/src/services/SettlementService.test.ts +13 -85
  91. package/src/services/SettlementService.ts +5 -113
  92. package/src/services/WebshopCrowdfundingService.test.ts +4 -3
  93. package/src/sql-filters/balance-items.ts +10 -0
  94. package/src/sql-filters/registrations.ts +59 -1
  95. package/tests/actions/patchUserMember.ts +2 -1
  96. package/tests/e2e/api-rate-limits.test.ts +2 -1
  97. package/tests/e2e/bundle-discounts.test.ts +4 -3
  98. package/tests/e2e/charge-members.test.ts +6 -5
  99. package/tests/e2e/documents.test.ts +4 -3
  100. package/tests/e2e/private-files.test.ts +9 -8
  101. package/tests/e2e/register.test.ts +4 -3
  102. package/tests/e2e/stock.test.ts +4 -3
  103. package/tests/e2e/tickets.test.ts +4 -3
  104. package/tests/helpers/ExportSlice.ts +2 -1
  105. package/tests/helpers/MollieMocker.ts +173 -38
  106. package/tests/init/initAdmin.ts +2 -1
  107. package/tests/init/initPlatformAdmin.ts +2 -1
  108. package/src/helpers/ViesHelper.test.ts +0 -401
  109. package/src/helpers/ViesHelper.ts +0 -215
  110. package/src/services/PeppolDirectoryService.test.ts +0 -139
  111. package/src/services/PeppolDirectoryService.ts +0 -111
@@ -1,13 +1,14 @@
1
1
  import type { Endpoint } from '@simonbackx/simple-endpoints';
2
2
  import { Request } from '@simonbackx/simple-endpoints';
3
- import type { MemberWithUsersRegistrationsAndGroups, RegistrationPeriod } from '@stamhoofd/models';
4
- import { EventFactory, GroupFactory, MemberFactory, OrganizationFactory, RecordCategoryFactory, RegistrationFactory, RegistrationPeriodFactory, Token, UserFactory } from '@stamhoofd/models';
3
+ import type { MemberWithUsersRegistrationsAndGroups, RegistrationPeriod, Token } from '@stamhoofd/models';
4
+ import { EventFactory, GroupFactory, MemberFactory, OrganizationFactory, RecordCategoryFactory, RegistrationFactory, RegistrationPeriodFactory, UserFactory } from '@stamhoofd/models';
5
5
  import type { SortList } from '@stamhoofd/structures';
6
6
  import { AccessRight, EventMeta, GroupType, LimitedFilteredRequest, NamedObject, PermissionLevel, PermissionRoleDetailed, Permissions, PermissionsResourceType, RecordAnswer, RecordDateAnswer, RecordTextAnswer, RecordType, ResourcePermissions, SortItemDirection } from '@stamhoofd/structures';
7
7
  import { STExpect, TestUtils } from '@stamhoofd/test-utils';
8
8
  import { GetMembersEndpoint } from './GetMembersEndpoint.js';
9
9
  import { testServer } from '../../../../tests/helpers/TestServer.js';
10
10
  import { initPlatformRecordCategory } from '../../../../tests/init/initPlatformRecordCategory.js';
11
+ import { SessionService } from '../../../services/SessionService.js';
11
12
 
12
13
  const baseUrl = `/members`;
13
14
  const endpoint = new GetMembersEndpoint();
@@ -53,7 +54,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
53
54
  })
54
55
  .create();
55
56
 
56
- const token = await Token.createToken(user);
57
+ const token = await SessionService.createSession(user);
57
58
  const member1 = await new MemberFactory({ }).create();
58
59
  const member2 = await new MemberFactory({ }).create();
59
60
  const group = await new GroupFactory({ organization, period }).create();
@@ -126,7 +127,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
126
127
  })
127
128
  .create();
128
129
 
129
- const token = await Token.createToken(user);
130
+ const token = await SessionService.createSession(user);
130
131
  const member1 = await new MemberFactory({ }).create();
131
132
  const member2 = await new MemberFactory({ }).create();
132
133
  const group = await new GroupFactory({ organization, period }).create();
@@ -195,7 +196,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
195
196
  })
196
197
  .create();
197
198
 
198
- const token = await Token.createToken(user);
199
+ const token = await SessionService.createSession(user);
199
200
  const member1 = await new MemberFactory({ }).create();
200
201
  const member2 = await new MemberFactory({ }).create();
201
202
  const group = await new GroupFactory({ organization, period }).create();
@@ -276,7 +277,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
276
277
  })
277
278
  .create();
278
279
 
279
- const token = await Token.createToken(user);
280
+ const token = await SessionService.createSession(user);
280
281
  const member1 = await new MemberFactory({ }).create();
281
282
  const member2 = await new MemberFactory({ }).create();
282
283
  const group = await new GroupFactory({ organization, period }).create();
@@ -347,7 +348,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
347
348
  })
348
349
  .create();
349
350
 
350
- const token = await Token.createToken(user);
351
+ const token = await SessionService.createSession(user);
351
352
  const member1 = await new MemberFactory({ }).create();
352
353
  const member2 = await new MemberFactory({ }).create();
353
354
  const member3 = await new MemberFactory({ }).create();
@@ -422,7 +423,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
422
423
  })
423
424
  .create();
424
425
 
425
- const token = await Token.createToken(user);
426
+ const token = await SessionService.createSession(user);
426
427
  const member1 = await new MemberFactory({ }).create();
427
428
  const member2 = await new MemberFactory({ }).create();
428
429
  const member3 = await new MemberFactory({ }).create();
@@ -477,7 +478,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
477
478
  })
478
479
  .create();
479
480
 
480
- const token = await Token.createToken(user);
481
+ const token = await SessionService.createSession(user);
481
482
  const member1 = await new MemberFactory({ }).create();
482
483
  const member2 = await new MemberFactory({ }).create();
483
484
 
@@ -567,7 +568,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
567
568
  })
568
569
  .create();
569
570
 
570
- const token = await Token.createToken(user);
571
+ const token = await SessionService.createSession(user);
571
572
  const member1 = await new MemberFactory({ }).create();
572
573
  const member2 = await new MemberFactory({ }).create();
573
574
  const member3 = await new MemberFactory({ }).create();
@@ -661,7 +662,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
661
662
  })
662
663
  .create();
663
664
 
664
- const token = await Token.createToken(user);
665
+ const token = await SessionService.createSession(user);
665
666
  const member1 = await new MemberFactory({ }).create();
666
667
  const member2 = await new MemberFactory({ }).create();
667
668
 
@@ -746,7 +747,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
746
747
  })
747
748
  .create();
748
749
 
749
- const token = await Token.createToken(user);
750
+ const token = await SessionService.createSession(user);
750
751
  const member1 = await new MemberFactory({ }).create();
751
752
  const member2 = await new MemberFactory({ }).create();
752
753
 
@@ -825,7 +826,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
825
826
  })
826
827
  .create();
827
828
 
828
- const token = await Token.createToken(user);
829
+ const token = await SessionService.createSession(user);
829
830
  const member1 = await new MemberFactory({ }).create();
830
831
  const member2 = await new MemberFactory({ }).create();
831
832
  const member3 = await new MemberFactory({ }).create();
@@ -925,7 +926,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
925
926
  })
926
927
  .create();
927
928
 
928
- const token = await Token.createToken(user);
929
+ const token = await SessionService.createSession(user);
929
930
  const member1 = await new MemberFactory({ }).create();
930
931
  const member2 = await new MemberFactory({ }).create();
931
932
 
@@ -1013,7 +1014,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1013
1014
  })
1014
1015
  .create();
1015
1016
 
1016
- const token = await Token.createToken(user);
1017
+ const token = await SessionService.createSession(user);
1017
1018
  const member1 = await new MemberFactory({ }).create();
1018
1019
  const member2 = await new MemberFactory({ }).create();
1019
1020
 
@@ -1115,7 +1116,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1115
1116
  })
1116
1117
  .create();
1117
1118
 
1118
- const token = await Token.createToken(user);
1119
+ const token = await SessionService.createSession(user);
1119
1120
  const member1 = await new MemberFactory({ }).create();
1120
1121
  const member2 = await new MemberFactory({ }).create();
1121
1122
 
@@ -1220,7 +1221,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1220
1221
  })
1221
1222
  .create();
1222
1223
 
1223
- const token = await Token.createToken(user);
1224
+ const token = await SessionService.createSession(user);
1224
1225
  const member1 = await new MemberFactory({ }).create();
1225
1226
  const member2 = await new MemberFactory({ }).create();
1226
1227
 
@@ -1305,7 +1306,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1305
1306
  })
1306
1307
  .create();
1307
1308
 
1308
- const token = await Token.createToken(user);
1309
+ const token = await SessionService.createSession(user);
1309
1310
  const member1 = await new MemberFactory({ }).create();
1310
1311
  const member2 = await new MemberFactory({ }).create();
1311
1312
  const member3 = await new MemberFactory({ }).create();
@@ -1391,7 +1392,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1391
1392
  })
1392
1393
  .create();
1393
1394
 
1394
- const token = await Token.createToken(user);
1395
+ const token = await SessionService.createSession(user);
1395
1396
  const member1 = await new MemberFactory({ }).create();
1396
1397
  const member2 = await new MemberFactory({ }).create();
1397
1398
  const member3 = await new MemberFactory({ }).create();
@@ -1473,7 +1474,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1473
1474
  })
1474
1475
  .create();
1475
1476
 
1476
- const token = await Token.createToken(user);
1477
+ const token = await SessionService.createSession(user);
1477
1478
 
1478
1479
  // The member we are looking for: answered with a time of day that is not midnight
1479
1480
  const member1 = await new MemberFactory({}).create();
@@ -1614,7 +1615,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1614
1615
  })
1615
1616
  .create();
1616
1617
 
1617
- const token = await Token.createToken(user);
1618
+ const token = await SessionService.createSession(user);
1618
1619
  const member1 = await new MemberFactory({ }).create();
1619
1620
  const group = await new GroupFactory({ organization, period }).create();
1620
1621
 
@@ -1743,7 +1744,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1743
1744
  })
1744
1745
  .create();
1745
1746
 
1746
- const token = await Token.createToken(user);
1747
+ const token = await SessionService.createSession(user);
1747
1748
  const member1 = await new MemberFactory({ }).create();
1748
1749
  const group = await new GroupFactory({ organization, period }).create();
1749
1750
 
@@ -1840,7 +1841,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
1840
1841
  })
1841
1842
  .create();
1842
1843
 
1843
- const token = await Token.createToken(user);
1844
+ const token = await SessionService.createSession(user);
1844
1845
  const member1 = await new MemberFactory({ }).create();
1845
1846
  const controlMember = await new MemberFactory({ }).create();
1846
1847
  const group = await new GroupFactory({ organization, period }).create();
@@ -2046,7 +2047,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
2046
2047
  })
2047
2048
  .create();
2048
2049
 
2049
- const token = await Token.createToken(user);
2050
+ const token = await SessionService.createSession(user);
2050
2051
 
2051
2052
  // Try to request all members at organization
2052
2053
  const request = Request.get({
@@ -2101,7 +2102,7 @@ describe('Endpoint.GetMembersEndpoint', () => {
2101
2102
  }),
2102
2103
  }).create();
2103
2104
 
2104
- const token = await Token.createToken(user);
2105
+ const token = await SessionService.createSession(user);
2105
2106
  const group = await new GroupFactory({ organization, period }).create();
2106
2107
 
2107
2108
  const members: MemberWithUsersRegistrationsAndGroups[] = [];