@stamhoofd/backend 2.3.1 → 2.5.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 (39) hide show
  1. package/index.ts +3 -0
  2. package/package.json +4 -4
  3. package/src/endpoints/admin/invoices/GetInvoicesEndpoint.ts +1 -1
  4. package/src/endpoints/admin/memberships/GetChargeMembershipsSummaryEndpoint.ts +63 -2
  5. package/src/endpoints/auth/CreateAdminEndpoint.ts +6 -3
  6. package/src/endpoints/auth/GetOtherUserEndpoint.ts +41 -0
  7. package/src/endpoints/auth/GetUserEndpoint.ts +6 -28
  8. package/src/endpoints/auth/PatchUserEndpoint.ts +25 -6
  9. package/src/endpoints/auth/SignupEndpoint.ts +2 -2
  10. package/src/endpoints/global/email/CreateEmailEndpoint.ts +120 -0
  11. package/src/endpoints/global/email/GetEmailEndpoint.ts +51 -0
  12. package/src/endpoints/global/email/PatchEmailEndpoint.ts +108 -0
  13. package/src/endpoints/global/events/GetEventsEndpoint.ts +223 -0
  14. package/src/endpoints/global/events/PatchEventsEndpoint.ts +319 -0
  15. package/src/endpoints/global/members/GetMembersEndpoint.ts +124 -48
  16. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.ts +107 -117
  17. package/src/endpoints/global/organizations/GetOrganizationFromDomainEndpoint.ts +3 -2
  18. package/src/endpoints/global/organizations/GetOrganizationFromUriEndpoint.ts +2 -1
  19. package/src/endpoints/global/organizations/SearchOrganizationEndpoint.ts +2 -1
  20. package/src/endpoints/global/platform/GetPlatformAdminsEndpoint.ts +2 -1
  21. package/src/endpoints/global/platform/PatchPlatformEnpoint.ts +9 -0
  22. package/src/endpoints/global/registration/PatchUserMembersEndpoint.ts +3 -2
  23. package/src/endpoints/global/registration/RegisterMembersEndpoint.ts +345 -176
  24. package/src/endpoints/global/webshops/GetWebshopFromDomainEndpoint.ts +5 -5
  25. package/src/endpoints/organization/dashboard/email/EmailEndpoint.ts +1 -1
  26. package/src/endpoints/organization/dashboard/email-templates/GetEmailTemplatesEndpoint.ts +43 -25
  27. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.ts +26 -7
  28. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +23 -22
  29. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.ts +210 -121
  30. package/src/endpoints/organization/dashboard/stripe/DeleteStripeAccountEndpoint.ts +8 -8
  31. package/src/endpoints/organization/dashboard/users/GetOrganizationAdminsEndpoint.ts +2 -1
  32. package/src/endpoints/organization/shared/ExchangePaymentEndpoint.ts +2 -1
  33. package/src/helpers/AdminPermissionChecker.ts +60 -3
  34. package/src/helpers/AuthenticatedStructures.ts +164 -37
  35. package/src/helpers/Context.ts +4 -0
  36. package/src/helpers/EmailResumer.ts +17 -0
  37. package/src/helpers/MemberUserSyncer.ts +221 -0
  38. package/src/seeds/1722256498-group-update-occupancy.ts +52 -0
  39. package/src/seeds/1722344160-update-membership.ts +57 -0
@@ -47,6 +47,15 @@ export class PatchPlatformEndpoint extends Endpoint<Params, Query, Body, Respons
47
47
  // Update roles
48
48
  platform.privateConfig.roles = patchObject(platform.privateConfig.roles, request.body.privateConfig.roles)
49
49
  }
50
+
51
+ if (request.body.privateConfig.emails) {
52
+ if (!Context.auth.hasPlatformFullAccess()) {
53
+ throw Context.auth.error()
54
+ }
55
+
56
+ // Update roles
57
+ platform.privateConfig.emails = patchObject(platform.privateConfig.emails, request.body.privateConfig.emails)
58
+ }
50
59
  }
51
60
 
52
61
  if (request.body.config) {
@@ -7,6 +7,7 @@ import { MemberWithRegistrationsBlob, MembersBlob } from "@stamhoofd/structures"
7
7
  import { Context } from '../../../helpers/Context';
8
8
  import { PatchOrganizationMembersEndpoint } from '../../global/members/PatchOrganizationMembersEndpoint';
9
9
  import { AuthenticatedStructures } from '../../../helpers/AuthenticatedStructures';
10
+ import { MemberUserSyncer } from '../../../helpers/MemberUserSyncer';
10
11
  type Params = Record<string, never>;
11
12
  type Query = undefined;
12
13
  type Body = PatchableArrayAutoEncoder<MemberWithRegistrationsBlob>
@@ -83,7 +84,7 @@ export class PatchUserMembersEndpoint extends Endpoint<Params, Query, Body, Resp
83
84
  const updatedMember = members.find(m => m.id === member.id);
84
85
  if (updatedMember) {
85
86
  // Make sure we also give access to other parents
86
- await PatchOrganizationMembersEndpoint.updateManagers(updatedMember)
87
+ await MemberUserSyncer.onChangeMember(updatedMember)
87
88
  await Document.updateForMember(updatedMember.id)
88
89
  }
89
90
  }
@@ -121,7 +122,7 @@ export class PatchUserMembersEndpoint extends Endpoint<Params, Query, Body, Resp
121
122
  })
122
123
  }
123
124
  await member.save();
124
- await PatchOrganizationMembersEndpoint.updateManagers(member)
125
+ await MemberUserSyncer.onChangeMember(member)
125
126
 
126
127
  // Update documents
127
128
  await Document.updateForMember(member.id)