@stamhoofd/backend 2.82.0 → 2.83.1

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 (95) hide show
  1. package/package.json +10 -10
  2. package/src/audit-logs/GroupLogger.ts +3 -3
  3. package/src/audit-logs/MemberResponsibilityRecordLogger.ts +1 -1
  4. package/src/audit-logs/OrderLogger.ts +1 -1
  5. package/src/audit-logs/RegistrationLogger.ts +1 -1
  6. package/src/endpoints/admin/members/ChargeMembersEndpoint.ts +4 -4
  7. package/src/endpoints/admin/memberships/ChargeMembershipsEndpoint.ts +1 -1
  8. package/src/endpoints/admin/organizations/ChargeOrganizationsEndpoint.ts +5 -5
  9. package/src/endpoints/admin/organizations/GetOrganizationsEndpoint.ts +1 -1
  10. package/src/endpoints/admin/organizations/PatchOrganizationsEndpoint.ts +8 -8
  11. package/src/endpoints/auth/CreateAdminEndpoint.ts +2 -2
  12. package/src/endpoints/auth/CreateTokenEndpoint.ts +10 -10
  13. package/src/endpoints/auth/ForgotPasswordEndpoint.ts +2 -2
  14. package/src/endpoints/auth/PatchUserEndpoint.ts +9 -9
  15. package/src/endpoints/auth/SignupEndpoint.ts +2 -2
  16. package/src/endpoints/auth/VerifyEmailEndpoint.ts +3 -3
  17. package/src/endpoints/global/audit-logs/GetAuditLogsEndpoint.ts +1 -1
  18. package/src/endpoints/global/email/GetEmailAddressEndpoint.ts +1 -1
  19. package/src/endpoints/global/email/GetEmailEndpoint.ts +1 -1
  20. package/src/endpoints/global/email/ManageEmailAddressEndpoint.ts +1 -1
  21. package/src/endpoints/global/email/PatchEmailEndpoint.ts +4 -4
  22. package/src/endpoints/global/events/GetEventNotificationsEndpoint.ts +1 -1
  23. package/src/endpoints/global/events/PatchEventNotificationsEndpoint.ts +1 -1
  24. package/src/endpoints/global/events/PatchEventsEndpoint.ts +22 -16
  25. package/src/endpoints/global/files/ExportToExcelEndpoint.ts +1 -1
  26. package/src/endpoints/global/files/UploadFile.ts +14 -2
  27. package/src/endpoints/global/files/UploadImage.ts +2 -2
  28. package/src/endpoints/global/members/GetMemberFamilyEndpoint.ts +2 -2
  29. package/src/endpoints/global/members/GetMembersEndpoint.ts +1 -1
  30. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.test.ts +11 -11
  31. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.ts +34 -34
  32. package/src/endpoints/global/organizations/CheckRegisterCodeEndpoint.ts +1 -1
  33. package/src/endpoints/global/organizations/CreateOrganizationEndpoint.ts +5 -5
  34. package/src/endpoints/global/platform/PatchPlatformEnpoint.ts +1 -1
  35. package/src/endpoints/global/registration/GetPaymentRegistrations.ts +2 -2
  36. package/src/endpoints/global/registration/PatchUserMembersEndpoint.test.ts +10 -10
  37. package/src/endpoints/global/registration/PatchUserMembersEndpoint.ts +4 -4
  38. package/src/endpoints/global/registration/RegisterMembersEndpoint.ts +37 -37
  39. package/src/endpoints/global/registration-periods/PatchRegistrationPeriodsEndpoint.ts +2 -2
  40. package/src/endpoints/organization/dashboard/documents/GetDocumentTemplateXML.ts +1 -1
  41. package/src/endpoints/organization/dashboard/documents/PatchDocumentEndpoint.ts +5 -5
  42. package/src/endpoints/organization/dashboard/documents/PatchDocumentTemplateEndpoint.ts +2 -2
  43. package/src/endpoints/organization/dashboard/email/CheckEmailBouncesEndpoint.ts +1 -1
  44. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.ts +3 -3
  45. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.test.ts +1218 -3
  46. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +136 -12
  47. package/src/endpoints/organization/dashboard/organization/SetOrganizationDomainEndpoint.ts +3 -3
  48. package/src/endpoints/organization/dashboard/payments/GetMemberBalanceEndpoint.ts +1 -1
  49. package/src/endpoints/organization/dashboard/payments/GetPaymentsEndpoint.ts +1 -1
  50. package/src/endpoints/organization/dashboard/payments/PatchBalanceItemsEndpoint.ts +11 -11
  51. package/src/endpoints/organization/dashboard/payments/PatchPaymentsEndpoint.ts +13 -13
  52. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.ts +16 -16
  53. package/src/endpoints/organization/dashboard/stripe/DeleteStripeAccountEndpoint.ts +1 -1
  54. package/src/endpoints/organization/dashboard/stripe/GetStripeAccountLinkEndpoint.ts +1 -1
  55. package/src/endpoints/organization/dashboard/stripe/GetStripeLoginLinkEndpoint.ts +1 -1
  56. package/src/endpoints/organization/dashboard/stripe/UpdateStripeAccountEndpoint.ts +1 -1
  57. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.ts +1 -1
  58. package/src/endpoints/organization/dashboard/users/DeleteUserEndpoint.ts +2 -2
  59. package/src/endpoints/organization/dashboard/users/PatchApiUserEndpoint.ts +2 -2
  60. package/src/endpoints/organization/dashboard/webshops/CreateWebshopEndpoint.ts +4 -4
  61. package/src/endpoints/organization/dashboard/webshops/PatchDiscountCodesEndpoint.ts +2 -2
  62. package/src/endpoints/organization/dashboard/webshops/PatchWebshopEndpoint.ts +8 -8
  63. package/src/endpoints/organization/dashboard/webshops/PatchWebshopTicketsEndpoint.ts +1 -1
  64. package/src/endpoints/organization/shared/ExchangePaymentEndpoint.ts +1 -1
  65. package/src/endpoints/organization/shared/GetDocumentHtml.ts +2 -2
  66. package/src/endpoints/organization/shared/GetPaymentEndpoint.ts +1 -1
  67. package/src/endpoints/organization/webshops/CheckWebshopDiscountCodesEndpoint.ts +1 -1
  68. package/src/endpoints/organization/webshops/GetOrderByPaymentEndpoint.ts +2 -2
  69. package/src/endpoints/organization/webshops/GetOrderEndpoint.ts +1 -1
  70. package/src/endpoints/organization/webshops/GetTicketsEndpoint.ts +3 -3
  71. package/src/endpoints/organization/webshops/GetWebshopEndpoint.ts +1 -1
  72. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.ts +10 -8
  73. package/src/excel-loaders/event-notifications.ts +11 -11
  74. package/src/excel-loaders/members.ts +34 -34
  75. package/src/excel-loaders/organizations.ts +23 -23
  76. package/src/excel-loaders/payments.ts +39 -39
  77. package/src/excel-loaders/receivable-balances.ts +21 -21
  78. package/src/helpers/AddressValidator.ts +6 -6
  79. package/src/helpers/AdminPermissionChecker.ts +29 -5
  80. package/src/helpers/AuthenticatedStructures.ts +8 -8
  81. package/src/helpers/BuckarooHelper.ts +1 -1
  82. package/src/helpers/Context.ts +3 -3
  83. package/src/helpers/FileCache.ts +7 -7
  84. package/src/helpers/ForwardHandler.ts +1 -1
  85. package/src/helpers/GlobalHelper.ts +6 -4
  86. package/src/helpers/MembershipCharger.ts +2 -2
  87. package/src/helpers/SetupStepUpdater.ts +1 -1
  88. package/src/helpers/StripeHelper.ts +7 -7
  89. package/src/helpers/XlsxTransformerColumnHelper.ts +18 -18
  90. package/src/services/DocumentService.ts +1 -1
  91. package/src/services/EventNotificationService.ts +1 -1
  92. package/src/services/MemberNumberService.ts +3 -3
  93. package/src/services/SSOService.ts +5 -5
  94. package/src/sql-filters/members.ts +1 -1
  95. package/tests/e2e/private-files.test.ts +3 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/backend",
3
- "version": "2.82.0",
3
+ "version": "2.83.1",
4
4
  "main": "./dist/index.js",
5
5
  "exports": {
6
6
  ".": {
@@ -38,14 +38,14 @@
38
38
  "@simonbackx/simple-encoding": "2.22.0",
39
39
  "@simonbackx/simple-endpoints": "1.19.1",
40
40
  "@simonbackx/simple-logging": "^1.0.1",
41
- "@stamhoofd/backend-i18n": "2.82.0",
42
- "@stamhoofd/backend-middleware": "2.82.0",
43
- "@stamhoofd/email": "2.82.0",
44
- "@stamhoofd/models": "2.82.0",
45
- "@stamhoofd/queues": "2.82.0",
46
- "@stamhoofd/sql": "2.82.0",
47
- "@stamhoofd/structures": "2.82.0",
48
- "@stamhoofd/utility": "2.82.0",
41
+ "@stamhoofd/backend-i18n": "2.83.1",
42
+ "@stamhoofd/backend-middleware": "2.83.1",
43
+ "@stamhoofd/email": "2.83.1",
44
+ "@stamhoofd/models": "2.83.1",
45
+ "@stamhoofd/queues": "2.83.1",
46
+ "@stamhoofd/sql": "2.83.1",
47
+ "@stamhoofd/structures": "2.83.1",
48
+ "@stamhoofd/utility": "2.83.1",
49
49
  "archiver": "^7.0.1",
50
50
  "aws-sdk": "^2.885.0",
51
51
  "axios": "1.6.8",
@@ -65,5 +65,5 @@
65
65
  "publishConfig": {
66
66
  "access": "public"
67
67
  },
68
- "gitHead": "ce2a8fa52bc4881cc00f1c5d61c737cf19f3a62e"
68
+ "gitHead": "97bf928ed008f1a992380b25385c86caecc43d42"
69
69
  }
@@ -70,7 +70,7 @@ export const GroupLogger = new ModelLogger(Group, {
70
70
  return new Map([
71
71
  ['e', AuditLogReplacement.create({
72
72
  id: model.settings.eventId,
73
- value: model.settings.name,
73
+ value: model.settings.name.toString(),
74
74
  type: AuditLogReplacementType.Event,
75
75
  })],
76
76
  ]);
@@ -78,7 +78,7 @@ export const GroupLogger = new ModelLogger(Group, {
78
78
  return new Map([
79
79
  ['e', AuditLogReplacement.create({
80
80
  id: model.id,
81
- value: model.settings.name,
81
+ value: model.settings.name.toString(),
82
82
  type: AuditLogReplacementType.Group,
83
83
  })],
84
84
  ]);
@@ -87,7 +87,7 @@ export const GroupLogger = new ModelLogger(Group, {
87
87
  return new Map([
88
88
  ['g', AuditLogReplacement.create({
89
89
  id: model.id,
90
- value: model.settings.name,
90
+ value: model.settings.name.toString(),
91
91
  type: AuditLogReplacementType.Group,
92
92
  })],
93
93
  ]);
@@ -59,7 +59,7 @@ export const MemberResponsibilityRecordLogger = new ModelLogger(MemberResponsibi
59
59
  if (options.data.group) {
60
60
  map.set('g', AuditLogReplacement.create({
61
61
  id: options.data.group.id,
62
- value: options.data.group.settings.name,
62
+ value: options.data.group.settings.name.toString(),
63
63
  type: AuditLogReplacementType.Group,
64
64
  }));
65
65
  }
@@ -50,7 +50,7 @@ export const OrderLogger = new ModelLogger(Order, {
50
50
  id: model.id,
51
51
  value: model.number ? `bestelling #${model.number}` : `bestelling van ${model.data.customer.name}`,
52
52
  type: AuditLogReplacementType.Order,
53
- description: model.number ? model.data.customer.name : 'Deze bestelling heeft nog geen nummer',
53
+ description: model.number ? model.data.customer.name : $t(`4597a3f5-6a6a-44a3-85da-5240ab08447a`),
54
54
  })],
55
55
  ]);
56
56
  },
@@ -39,7 +39,7 @@ export const RegistrationLogger = new ModelLogger(Registration, {
39
39
  })],
40
40
  ['g', AuditLogReplacement.create({
41
41
  id: data.group.id,
42
- value: data.group.settings.name,
42
+ value: data.group.settings.name.toString(),
43
43
  type: AuditLogReplacementType.Group,
44
44
  })],
45
45
  ]);
@@ -36,7 +36,7 @@ export class ChargeMembersEndpoint extends Endpoint<Params, Query, Body, Respons
36
36
  throw new SimpleError({
37
37
  code: 'invalid_field',
38
38
  message: 'Invalid description',
39
- human: 'Beschrijving is verplicht',
39
+ human: $t(`2449fba5-99dc-496f-a9d6-a67263d56616`),
40
40
  field: 'description',
41
41
  });
42
42
  }
@@ -45,7 +45,7 @@ export class ChargeMembersEndpoint extends Endpoint<Params, Query, Body, Respons
45
45
  throw new SimpleError({
46
46
  code: 'invalid_field',
47
47
  message: 'Invalid price',
48
- human: 'Bedrag kan niet 0 zijn',
48
+ human: $t(`1e165aac-8a58-45c5-bdd8-c58131a7b7f5`),
49
49
  field: 'price',
50
50
  });
51
51
  }
@@ -54,7 +54,7 @@ export class ChargeMembersEndpoint extends Endpoint<Params, Query, Body, Respons
54
54
  throw new SimpleError({
55
55
  code: 'invalid_field',
56
56
  message: 'Invalid amount',
57
- human: 'Aantal kan niet 0 zijn',
57
+ human: $t(`0bdf4953-1eae-41fd-b142-5ad3287f17a7`),
58
58
  field: 'amount',
59
59
  });
60
60
  }
@@ -78,7 +78,7 @@ export class ChargeMembersEndpoint extends Endpoint<Params, Query, Body, Respons
78
78
  throw new SimpleError({
79
79
  code: 'charge_pending',
80
80
  message: 'Charge members already pending',
81
- human: 'Er is al een aanrekening bezig, even geduld.',
81
+ human: $t(`d2b84fdd-035b-4307-a897-000081aa814f`),
82
82
  });
83
83
  }
84
84
 
@@ -34,7 +34,7 @@ export class ChargeMembershipsEndpoint extends Endpoint<Params, Query, Body, Res
34
34
  throw new SimpleError({
35
35
  code: 'charge_pending',
36
36
  message: 'Charge already pending',
37
- human: 'Er is al een aanrekening bezig, even geduld.',
37
+ human: $t(`d2b84fdd-035b-4307-a897-000081aa814f`),
38
38
  });
39
39
  }
40
40
 
@@ -36,7 +36,7 @@ export class ChargeOrganizationsEndpoint extends Endpoint<Params, Query, Body, R
36
36
  throw new SimpleError({
37
37
  code: 'invalid_field',
38
38
  message: 'Invalid description',
39
- human: 'Beschrijving is verplicht',
39
+ human: $t(`2449fba5-99dc-496f-a9d6-a67263d56616`),
40
40
  field: 'description',
41
41
  });
42
42
  }
@@ -45,7 +45,7 @@ export class ChargeOrganizationsEndpoint extends Endpoint<Params, Query, Body, R
45
45
  throw new SimpleError({
46
46
  code: 'invalid_field',
47
47
  message: 'Invalid price',
48
- human: 'Bedrag kan niet 0 zijn',
48
+ human: $t(`1e165aac-8a58-45c5-bdd8-c58131a7b7f5`),
49
49
  field: 'price',
50
50
  });
51
51
  }
@@ -54,7 +54,7 @@ export class ChargeOrganizationsEndpoint extends Endpoint<Params, Query, Body, R
54
54
  throw new SimpleError({
55
55
  code: 'invalid_field',
56
56
  message: 'Invalid amount',
57
- human: 'Aantal kan niet 0 zijn',
57
+ human: $t(`0bdf4953-1eae-41fd-b142-5ad3287f17a7`),
58
58
  field: 'amount',
59
59
  });
60
60
  }
@@ -63,7 +63,7 @@ export class ChargeOrganizationsEndpoint extends Endpoint<Params, Query, Body, R
63
63
  throw new SimpleError({
64
64
  code: 'invalid_field',
65
65
  message: 'Invalid organization id',
66
- human: 'Organisatie is verplicht',
66
+ human: $t(`ae7ac6ab-bb02-4cd6-823f-7076e4ce6f6c`),
67
67
  field: 'organizationId',
68
68
  });
69
69
  }
@@ -85,7 +85,7 @@ export class ChargeOrganizationsEndpoint extends Endpoint<Params, Query, Body, R
85
85
  throw new SimpleError({
86
86
  code: 'charge_pending',
87
87
  message: 'Charge organizations already pending',
88
- human: 'Er is al een aanrekening bezig, even geduld.',
88
+ human: $t(`d2b84fdd-035b-4307-a897-000081aa814f`),
89
89
  });
90
90
  }
91
91
 
@@ -127,7 +127,7 @@ export class GetOrganizationsEndpoint extends Endpoint<Params, Query, Body, Resp
127
127
  throw new SimpleError({
128
128
  code: 'timeout',
129
129
  message: 'Query took too long',
130
- human: 'Deze opzoeking is te complex en duurt te lang. Probeer een eenvoudigere zoekopdracht of probeer terug op een rustiger tijdstip.',
130
+ human: $t(`dce51638-6129-448b-8a15-e6d778f3a76a`),
131
131
  });
132
132
  }
133
133
  throw error;
@@ -43,7 +43,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
43
43
 
44
44
  for (const id of request.body.getDeletes()) {
45
45
  if (!Context.auth.hasPlatformFullAccess()) {
46
- throw Context.auth.error('Enkel een platform hoofdbeheerder kan groepen verwijderen');
46
+ throw Context.auth.error($t(`d01932d9-e958-4b29-98f2-cc5ff6be29d3`));
47
47
  }
48
48
 
49
49
  const organization = await Organization.getByID(id);
@@ -55,7 +55,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
55
55
  throw new SimpleError({
56
56
  code: 'cannot_delete_membership_organization',
57
57
  message: 'Cannot delete membership organization',
58
- human: 'Je kan de hoofdgroep niet verwijderen. Als je dit toch wil doen, kan je eerst een andere vereniging instellen als hoofdgroep via \'Boekhouding en aansluitingen\'.',
58
+ human: $t(`a1f57ce7-a96a-4c8d-b43f-79a07a78114f`),
59
59
  });
60
60
  }
61
61
 
@@ -65,7 +65,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
65
65
  // Organization creation
66
66
  for (const { put } of request.body.getPuts()) {
67
67
  if (!Context.auth.hasPlatformFullAccess()) {
68
- throw Context.auth.error('Enkel een platform hoofdbeheerder kan nieuwe groepen aanmaken');
68
+ throw Context.auth.error($t(`83826ae8-fd89-46c2-ad3f-8f77aadd65b2`));
69
69
  }
70
70
 
71
71
  if (put.name.length < 4) {
@@ -73,7 +73,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
73
73
  throw new SimpleError({
74
74
  code: 'invalid_field',
75
75
  message: 'Should not be empty',
76
- human: 'Je bent de naam van je organisatie vergeten in te vullen',
76
+ human: $t(`3f37782a-c07f-457d-994f-f1cc075cff44`),
77
77
  field: 'organization.name',
78
78
  });
79
79
  }
@@ -81,7 +81,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
81
81
  throw new SimpleError({
82
82
  code: 'invalid_field',
83
83
  message: 'Field is too short',
84
- human: 'Kijk de naam van je organisatie na, deze is te kort. Vul eventueel aan met de gemeente.',
84
+ human: $t(`0e82abec-5467-45d8-ba89-9b9fd10c085d`),
85
85
  field: 'organization.name',
86
86
  });
87
87
  }
@@ -92,7 +92,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
92
92
  throw new SimpleError({
93
93
  code: 'invalid_field',
94
94
  message: 'Field is too long',
95
- human: 'De naam van de vereniging is te lang. Probeer de naam wat te verkorten en probeer opnieuw.',
95
+ human: $t(`c4d225ea-8e41-4829-bf0c-bc04755492de`),
96
96
  field: 'organization.name',
97
97
  });
98
98
  }
@@ -102,7 +102,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
102
102
  throw new SimpleError({
103
103
  code: 'name_taken',
104
104
  message: 'An organization with the same name already exists',
105
- human: 'Er bestaat al een vereniging met dezelfde URI. Pas deze aan zodat deze uniek is, en controleer of deze vereniging niet al bestaat.',
105
+ human: $t(`6e675a7d-b124-4507-bf0c-9b70013e98ca`),
106
106
  field: 'name',
107
107
  });
108
108
  }
@@ -113,7 +113,7 @@ export class PatchOrganizationsEndpoint extends Endpoint<Params, Query, Body, Re
113
113
  throw new SimpleError({
114
114
  code: 'name_taken',
115
115
  message: 'An organization with the same name already exists',
116
- human: 'Er bestaat al een vereniging met dezelfde naam. Voeg bijvoorbeeld de naam van je gemeente toe.',
116
+ human: $t(`19e5262f-9dc1-40d9-b905-bda8462b6046`),
117
117
  field: 'name',
118
118
  });
119
119
  }
@@ -59,7 +59,7 @@ export class CreateAdminEndpoint extends Endpoint<Params, Query, Body, ResponseB
59
59
  throw new SimpleError({
60
60
  code: 'internal_error',
61
61
  message: 'Something went wrong while creating the admin',
62
- human: 'Er ging iets mis bij het aanmaken van dit account',
62
+ human: $t(`f298a54a-ee0f-462c-a80a-8d8c967dfda3`),
63
63
  statusCode: 500,
64
64
  });
65
65
  }
@@ -123,7 +123,7 @@ export class CreateAdminEndpoint extends Endpoint<Params, Query, Body, ResponseB
123
123
  }),
124
124
  Replacement.create({
125
125
  token: 'inviterName',
126
- value: user.firstName ?? 'Iemand',
126
+ value: user.firstName ?? $t(`afc47996-7028-43ad-b7d0-8b5bb2979883`),
127
127
  }),
128
128
  Replacement.create({
129
129
  token: 'validUntil',
@@ -71,7 +71,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
71
71
  throw new SimpleError({
72
72
  code: 'error',
73
73
  message: 'Could not generate token',
74
- human: 'Er ging iets mis bij het aanmelden',
74
+ human: $t(`f40ddd3d-a986-4ec1-9db8-32ec1376c4e8`),
75
75
  statusCode: 500,
76
76
  });
77
77
  }
@@ -91,7 +91,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
91
91
  throw new SimpleError({
92
92
  code: 'not_supported',
93
93
  message: 'This platform does not support password login',
94
- human: 'Dit platform ondersteunt geen wachtwoord login',
94
+ human: $t(`4af15b54-0bbb-4112-adf2-26dd14e8675a`),
95
95
  statusCode: 400,
96
96
  });
97
97
  }
@@ -100,7 +100,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
100
100
  throw new SimpleError({
101
101
  code: 'not_supported',
102
102
  message: 'Login method not supported',
103
- human: 'Je kan op dit account niet inloggen met een wachtwoord. Gebruik een andere methode om in te loggen.',
103
+ human: $t(`ca4ca221-2ce9-4472-b8c7-1a5b2e2fdfa9`),
104
104
  statusCode: 400,
105
105
  });
106
106
  }
@@ -111,7 +111,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
111
111
  const errBody = {
112
112
  code: 'invalid_username_or_password',
113
113
  message: 'Invalid username or password',
114
- human: 'Foutief wachtwoord of onbekend emailadres',
114
+ human: $t(`ef53eb8d-b0ba-4e84-b0e3-1865729aeaa8`),
115
115
  statusCode: 400,
116
116
  };
117
117
 
@@ -130,7 +130,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
130
130
  throw new SimpleError({
131
131
  code: 'verify_email',
132
132
  message: 'Your email address needs verification',
133
- human: 'Jouw e-mailadres is nog niet geverifieerd. Verifieer jouw e-mailadres via de link in de e-mail.',
133
+ human: $t(`0da8cd34-d33e-4b54-94f2-531919f3cae1`),
134
134
  meta: SignupResponse.create({
135
135
  token: code.token,
136
136
  }).encode({ version: request.request.getVersion() }),
@@ -144,7 +144,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
144
144
  throw new SimpleError({
145
145
  code: 'error',
146
146
  message: 'Could not generate token',
147
- human: 'Er ging iets mis bij het aanmelden',
147
+ human: $t(`f40ddd3d-a986-4ec1-9db8-32ec1376c4e8`),
148
148
  statusCode: 500,
149
149
  });
150
150
  }
@@ -159,7 +159,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
159
159
  throw new SimpleError({
160
160
  code: 'invalid_token',
161
161
  message: 'Invalid token',
162
- human: 'Deze link is ongeldig of is al vervallen. Je zal nogmaals een e-mail moeten versturen om je wachtwoord te herstellen.',
162
+ human: $t(`dc03dd54-96e9-42b8-811b-3f8cf2b8534f`),
163
163
  statusCode: 400,
164
164
  });
165
165
  }
@@ -170,7 +170,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
170
170
  throw new SimpleError({
171
171
  code: 'invalid_token',
172
172
  message: 'Invalid token',
173
- human: 'Deze link is ongeldig of is al vervallen. Je zal nogmaals een e-mail moeten versturen om je wachtwoord te herstellen.',
173
+ human: $t(`dc03dd54-96e9-42b8-811b-3f8cf2b8534f`),
174
174
  statusCode: 400,
175
175
  });
176
176
  }
@@ -180,7 +180,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
180
180
  throw new SimpleError({
181
181
  code: 'invalid_token',
182
182
  message: 'Invalid token',
183
- human: 'Deze link is ongeldig of is al vervallen. Je zal nogmaals een e-mail moeten versturen om je wachtwoord te herstellen.',
183
+ human: $t(`dc03dd54-96e9-42b8-811b-3f8cf2b8534f`),
184
184
  statusCode: 400,
185
185
  });
186
186
  }
@@ -194,7 +194,7 @@ export class CreateTokenEndpoint extends Endpoint<Params, Query, Body, ResponseB
194
194
  throw new SimpleError({
195
195
  code: 'error',
196
196
  message: 'Could not generate token',
197
- human: 'Er ging iets mis bij het inloggen',
197
+ human: $t(`b75bc5af-7711-4905-a324-3dca313bbfc2`),
198
198
  statusCode: 500,
199
199
  });
200
200
  }
@@ -37,7 +37,7 @@ export class ForgotPasswordEndpoint extends Endpoint<Params, Query, Body, Respon
37
37
  throw new SimpleError({
38
38
  code: 'not_supported',
39
39
  message: 'This platform does not support password login',
40
- human: 'Dit platform ondersteunt geen wachtwoord login',
40
+ human: $t(`4af15b54-0bbb-4112-adf2-26dd14e8675a`),
41
41
  statusCode: 400,
42
42
  });
43
43
  }
@@ -46,7 +46,7 @@ export class ForgotPasswordEndpoint extends Endpoint<Params, Query, Body, Respon
46
46
  throw new SimpleError({
47
47
  code: 'not_supported',
48
48
  message: 'Login method not supported',
49
- human: 'Je kan op dit account geen wachtwoord gebruiken om in te loggen.',
49
+ human: $t(`52bddf7d-e494-4bdf-9b75-b5e9f9bcb427`),
50
50
  statusCode: 400,
51
51
  });
52
52
  }
@@ -44,7 +44,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
44
44
  const editUser = request.body.id === user.id ? user : await User.getByID(request.body.id);
45
45
 
46
46
  if (!editUser || !await Context.auth.canAccessUser(editUser, PermissionLevel.Write) || editUser.isApiUser) {
47
- throw Context.auth.notFoundOrNoAccess('Je hebt geen toegang om deze gebruiker te wijzigen');
47
+ throw Context.auth.notFoundOrNoAccess($t(`75c10aef-cdce-4171-b1a1-59dfdec5087c`));
48
48
  }
49
49
 
50
50
  if (await Context.auth.canEditUserName(editUser)) {
@@ -72,7 +72,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
72
72
  if (!await Context.auth.canAccessUser(editUser, PermissionLevel.Full)) {
73
73
  throw new SimpleError({
74
74
  code: 'permission_denied',
75
- message: 'Je hebt geen rechten om de rechten van deze gebruiker te wijzigen',
75
+ message: $t(`75bf8ddd-48f3-44b6-bd57-0b9838c322d9`),
76
76
  });
77
77
  }
78
78
 
@@ -83,7 +83,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
83
83
  if (editUser.id === user.id && (!editUser.permissions || !editUser.permissions.forOrganization(organization)?.hasFullAccess()) && STAMHOOFD.environment !== 'development') {
84
84
  throw new SimpleError({
85
85
  code: 'permission_denied',
86
- message: 'Je kan jezelf niet verwijderen als hoofdbeheerder',
86
+ message: $t(`e0dcbc2f-0881-409b-bb1e-6a19d0a2081c`),
87
87
  });
88
88
  }
89
89
  }
@@ -102,7 +102,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
102
102
  if (editUser.id === user.id && !editUser.permissions?.platform?.hasFullAccess() && STAMHOOFD.environment !== 'development') {
103
103
  throw new SimpleError({
104
104
  code: 'permission_denied',
105
- message: 'Je kan jezelf niet verwijderen als hoofdbeheerder',
105
+ message: $t(`e0dcbc2f-0881-409b-bb1e-6a19d0a2081c`),
106
106
  });
107
107
  }
108
108
  }
@@ -124,7 +124,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
124
124
  throw new SimpleError({
125
125
  code: 'invalid_request',
126
126
  message: 'You cannot remove the last login provider',
127
- human: 'Stel eerst een wachtwoord in voor jouw account voor je deze loginmethode uitschakelt.',
127
+ human: $t(`15e37a03-07ec-4299-8b9e-d54b7142a045`),
128
128
  statusCode: 400,
129
129
  });
130
130
  }
@@ -142,7 +142,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
142
142
  throw new SimpleError({
143
143
  code: 'not_supported',
144
144
  message: 'This platform does not support password login',
145
- human: 'Dit platform ondersteunt geen wachtwoord login',
145
+ human: $t(`4af15b54-0bbb-4112-adf2-26dd14e8675a`),
146
146
  statusCode: 400,
147
147
  });
148
148
  }
@@ -151,7 +151,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
151
151
  throw new SimpleError({
152
152
  code: 'not_supported',
153
153
  message: 'Login method not supported',
154
- human: 'Je kan op dit account geen wachtwoord gebruiken om in te loggen.',
154
+ human: $t(`52bddf7d-e494-4bdf-9b75-b5e9f9bcb427`),
155
155
  statusCode: 400,
156
156
  });
157
157
  }
@@ -170,7 +170,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
170
170
  throw new SimpleError({
171
171
  code: 'invalid_request',
172
172
  message: 'You cannot remove the last login provider',
173
- human: 'Je kan jouw wachtwoord niet verwijderen als je geen andere loginmethode hebt.',
173
+ human: $t(`e4b9b541-a029-47e7-97ca-4aa1bfa2137e`),
174
174
  statusCode: 400,
175
175
  });
176
176
  }
@@ -192,7 +192,7 @@ export class PatchUserEndpoint extends Endpoint<Params, Query, Body, ResponseBod
192
192
  throw new SimpleError({
193
193
  code: 'verify_email',
194
194
  message: 'Your email address needs verification',
195
- human: editUser.id === user.id ? 'Verifieer jouw nieuwe e-mailadres via de link in de e-mail, daarna passen we het automatisch aan.' : 'Er is een verificatie e-mail verstuurd naar ' + request.body.email + ' om het e-mailadres te verifiëren. Zodra dat is gebeurd, wordt het e-mailadres gewijzigd.',
195
+ human: editUser.id === user.id ? $t(`2a53e6f7-a6eb-4adf-a218-f28de686d188`) : $t(`919a83c6-c128-4d1c-bd5d-edb8c0106454`) + ' ' + request.body.email + ' ' + $t(`779c7d08-6db2-400c-95f8-af0f327109f8`),
196
196
  meta: SignupResponse.create({
197
197
  token: code.token,
198
198
  }).encode({ version: request.request.getVersion() }),
@@ -36,7 +36,7 @@ export class SignupEndpoint extends Endpoint<Params, Query, Body, ResponseBody>
36
36
  throw new SimpleError({
37
37
  code: 'not_supported',
38
38
  message: 'This platform does not support password login',
39
- human: 'Dit platform ondersteunt geen wachtwoord login',
39
+ human: $t(`4af15b54-0bbb-4112-adf2-26dd14e8675a`),
40
40
  statusCode: 400,
41
41
  });
42
42
  }
@@ -62,7 +62,7 @@ export class SignupEndpoint extends Endpoint<Params, Query, Body, ResponseBody>
62
62
  throw new SimpleError({
63
63
  code: 'unexpected_error',
64
64
  message: 'Something went wrong',
65
- human: 'Er ging iets mis',
65
+ human: $t(`44e0c667-07c5-4ff9-8bf2-623d9aa91219`),
66
66
  statusCode: 500,
67
67
  });
68
68
  }
@@ -36,7 +36,7 @@ export class VerifyEmailEndpoint extends Endpoint<Params, Query, Body, ResponseB
36
36
  throw new SimpleError({
37
37
  code: 'invalid_code',
38
38
  message: 'This code is invalid',
39
- human: 'Deze code is ongeldig of vervallen.',
39
+ human: $t(`6dfd3a88-1de2-4462-b2a4-625026f9a62f`),
40
40
  statusCode: 400,
41
41
  });
42
42
  }
@@ -47,7 +47,7 @@ export class VerifyEmailEndpoint extends Endpoint<Params, Query, Body, ResponseB
47
47
  throw new SimpleError({
48
48
  code: 'invalid_code',
49
49
  message: 'This code is invalid',
50
- human: 'Deze code is ongeldig of vervallen.',
50
+ human: $t(`6dfd3a88-1de2-4462-b2a4-625026f9a62f`),
51
51
  statusCode: 400,
52
52
  });
53
53
  }
@@ -77,7 +77,7 @@ export class VerifyEmailEndpoint extends Endpoint<Params, Query, Body, ResponseB
77
77
  throw new SimpleError({
78
78
  code: 'email_in_use',
79
79
  message: 'This e-mail is already in use, we cannot set it',
80
- human: 'We kunnen het e-mailadres van deze gebruiker niet instellen naar ' + code.email + ', omdat die al in gebruik is. Waarschijnlijk heb je meerdere accounts. Probeer met dat e-mailadres in te loggen of contacteer ons (' + request.$t('59b85264-c4c3-4cf6-8923-9b43282b2787') + ') als we de gebruikers moeten combineren tot één gebruiker.',
80
+ human: $t(`3073cc35-f434-4c2c-8347-34db10fc9940`, { email: code.email, contactEmail: request.$t('59b85264-c4c3-4cf6-8923-9b43282b2787') }),
81
81
  });
82
82
  }
83
83
  throw e;
@@ -81,7 +81,7 @@ export class GetAuditLogsEndpoint extends Endpoint<Params, Query, Body, Response
81
81
  throw new SimpleError({
82
82
  code: 'not_supported',
83
83
  message: 'Search is not possible in audit logs',
84
- human: 'Zoeken is niet mogelijk in audit logs',
84
+ human: $t(`540b9c7e-635f-48b7-a661-cd0700b3c602`),
85
85
  });
86
86
  }
87
87
 
@@ -40,7 +40,7 @@ export class GetEmailAddressEndpoint extends Endpoint<Params, Query, Body, Respo
40
40
  throw new SimpleError({
41
41
  code: 'invalid_fields',
42
42
  message: 'Invalid token or id',
43
- human: 'Deze link is vervallen. Probeer het opnieuw in een recentere e-mail',
43
+ human: $t(`ceacb5a8-7777-4366-abcb-9dd90ffb832e`),
44
44
  });
45
45
  }
46
46
 
@@ -41,7 +41,7 @@ export class GetEmailEndpoint extends Endpoint<Params, Query, Body, ResponseBody
41
41
  throw new SimpleError({
42
42
  code: 'not_found',
43
43
  human: 'Email not found',
44
- message: 'Deze e-mail bestaat niet of is verwijderd',
44
+ message: $t(`9ddb6616-f62d-4c91-82a9-e5cf398e4c4a`),
45
45
  statusCode: 404,
46
46
  });
47
47
  }
@@ -44,7 +44,7 @@ export class ManageEmailAddressEndpoint extends Endpoint<Params, Query, Body, Re
44
44
  throw new SimpleError({
45
45
  code: 'invalid_fields',
46
46
  message: 'Invalid token or id',
47
- human: 'Deze link is vervallen. Probeer het opnieuw in een recentere e-mail',
47
+ human: $t(`ceacb5a8-7777-4366-abcb-9dd90ffb832e`),
48
48
  });
49
49
  }
50
50
 
@@ -40,7 +40,7 @@ export class PatchEmailEndpoint extends Endpoint<Params, Query, Body, ResponseBo
40
40
  throw new SimpleError({
41
41
  code: 'not_found',
42
42
  human: 'Email not found',
43
- message: 'Deze e-mail bestaat niet of is verwijderd',
43
+ message: $t(`9ddb6616-f62d-4c91-82a9-e5cf398e4c4a`),
44
44
  statusCode: 404,
45
45
  });
46
46
  }
@@ -49,7 +49,7 @@ export class PatchEmailEndpoint extends Endpoint<Params, Query, Body, ResponseBo
49
49
  throw new SimpleError({
50
50
  code: 'not_draft',
51
51
  human: 'Email is not a draft',
52
- message: 'Deze e-mail is al verzonden en kan niet meer aangepast worden',
52
+ message: $t(`298b5a46-2899-4aa1-89df-9b634c20806b`),
53
53
  statusCode: 400,
54
54
  });
55
55
  }
@@ -112,7 +112,7 @@ export class PatchEmailEndpoint extends Endpoint<Params, Query, Body, ResponseBo
112
112
  throw new SimpleError({
113
113
  code: "missing_unsubscribe_button",
114
114
  message: "Missing unsubscribe button",
115
- human: "Je moet een ‘uitschrijven’-knop of link toevoegen onderaan je e-mail. Klik daarvoor onderaan op het ‘toverstaf’ icoontje en kies voor ‘Knop om uit te schrijven voor e-mails’. Dit is verplicht volgens de GDPR-wetgeving, maar het zorgt ook voor een betere e-mail reputatie omdat minder e-mails als spam worden gemarkeerd.",
115
+ human: $t(`dd55e04b-e5d9-4d9a-befc-443eef4175a8`),
116
116
  field: "html"
117
117
  })
118
118
  }
@@ -124,7 +124,7 @@ export class PatchEmailEndpoint extends Endpoint<Params, Query, Body, ResponseBo
124
124
  throw new SimpleError({
125
125
  code: "missing_unsubscribe_button",
126
126
  message: "Missing unsubscribe button",
127
- human: "Je moet een ‘uitschrijven’-knop of link toevoegen onderaan je e-mail. Klik daarvoor onderaan op het ‘toverstaf’ icoontje en kies voor ‘Knop om uit te schrijven voor e-mails’. Dit is verplicht volgens de GDPR-wetgeving, maar het zorgt ook voor een betere e-mail reputatie omdat minder e-mails als spam worden gemarkeerd.",
127
+ human: $t(`dd55e04b-e5d9-4d9a-befc-443eef4175a8`),
128
128
  field: "text"
129
129
  })
130
130
  }
@@ -142,7 +142,7 @@ export class GetEventNotificationsEndpoint extends Endpoint<Params, Query, Body,
142
142
 
143
143
  for (const notification of notifications) {
144
144
  if (!await Context.auth.canAccessEventNotification(notification)) {
145
- throw Context.auth.error('Je hebt geen toegang om deze melding te bekijken');
145
+ throw Context.auth.error($t(`f18f19ca-c56b-49ad-b131-244cbebb6b1f`));
146
146
  }
147
147
  }
148
148
 
@@ -69,7 +69,7 @@ export class PatchEventNotificationsEndpoint extends Endpoint<Params, Query, Bod
69
69
  throw new SimpleError({
70
70
  code: 'invalid_field',
71
71
  message: 'Invalid event',
72
- human: 'Dit evenement bestaat niet of is niet van jouw organisatie',
72
+ human: $t(`4275fbbe-9921-454e-852c-9c53a9803f1f`),
73
73
  field: 'events',
74
74
  });
75
75
  }