@darraghor/nest-backend-libs 2.27.0 → 2.28.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 (62) hide show
  1. package/dist/authorization/authz.module.js +2 -2
  2. package/dist/authorization/authz.module.js.map +1 -1
  3. package/dist/authorization/services/UserValidation.service.d.ts +7 -3
  4. package/dist/authorization/services/UserValidation.service.js +97 -65
  5. package/dist/authorization/services/UserValidation.service.js.map +1 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/invitations/dto/create-invitation.dto.js +5 -0
  10. package/dist/invitations/dto/create-invitation.dto.js.map +1 -1
  11. package/dist/invitations/entities/invitation.entity.d.ts +1 -1
  12. package/dist/invitations/entities/invitation.entity.js +8 -6
  13. package/dist/invitations/entities/invitation.entity.js.map +1 -1
  14. package/dist/invitations/invitation.controller.d.ts +2 -0
  15. package/dist/invitations/invitation.controller.js +42 -4
  16. package/dist/invitations/invitation.controller.js.map +1 -1
  17. package/dist/invitations/invitation.service.d.ts +2 -2
  18. package/dist/invitations/invitation.service.js +78 -44
  19. package/dist/invitations/invitation.service.js.map +1 -1
  20. package/dist/organisation/dto/create-organisation.dto.js +9 -0
  21. package/dist/organisation/dto/create-organisation.dto.js.map +1 -1
  22. package/dist/organisation/entities/member-role.entity.d.ts +0 -1
  23. package/dist/organisation/entities/member-role.entity.js +4 -8
  24. package/dist/organisation/entities/member-role.entity.js.map +1 -1
  25. package/dist/organisation/entities/organisation.entity.d.ts +2 -3
  26. package/dist/organisation/entities/organisation.entity.js +1 -15
  27. package/dist/organisation/entities/organisation.entity.js.map +1 -1
  28. package/dist/organisation/organisation.service.js +4 -0
  29. package/dist/organisation/organisation.service.js.map +1 -1
  30. package/dist/organisation-memberships/dtos/create-membership-dto.js +3 -0
  31. package/dist/organisation-memberships/dtos/create-membership-dto.js.map +1 -1
  32. package/dist/organisation-memberships/entities/organisation-membership.entity.d.ts +3 -4
  33. package/dist/organisation-memberships/entities/organisation-membership.entity.js +9 -29
  34. package/dist/organisation-memberships/entities/organisation-membership.entity.js.map +1 -1
  35. package/dist/organisation-memberships/organisation-memberships.service.js +9 -9
  36. package/dist/organisation-memberships/organisation-memberships.service.js.map +1 -1
  37. package/dist/organisation-subscriptions/organisation-subscriptions.service.js +2 -2
  38. package/dist/organisation-subscriptions/organisation-subscriptions.service.js.map +1 -1
  39. package/dist/root-app/models/QueueItemDto.js +11 -1
  40. package/dist/root-app/models/QueueItemDto.js.map +1 -1
  41. package/dist/smtp-email-client/email.entity.js +4 -4
  42. package/dist/smtp-email-client/email.entity.js.map +1 -1
  43. package/dist/stripe-client/models/StripeCheckoutSessionResponseDto.js +3 -0
  44. package/dist/stripe-client/models/StripeCheckoutSessionResponseDto.js.map +1 -1
  45. package/dist/stripe-client/models/StripeCustomerPortalResponseDto.js +2 -0
  46. package/dist/stripe-client/models/StripeCustomerPortalResponseDto.js.map +1 -1
  47. package/dist/stripe-client/services/stripe-checkout.service.js +4 -3
  48. package/dist/stripe-client/services/stripe-checkout.service.js.map +1 -1
  49. package/dist/super-powers/super-powers.controller.d.ts +1 -1
  50. package/dist/super-powers/super-powers.controller.js +2 -2
  51. package/dist/super-powers/super-powers.controller.js.map +1 -1
  52. package/dist/super-powers/super-powers.service.js +2 -2
  53. package/dist/user-internal/dto/userResponseDto.js +0 -2
  54. package/dist/user-internal/dto/userResponseDto.js.map +1 -1
  55. package/dist/user-internal/entities/user.entity.d.ts +2 -3
  56. package/dist/user-internal/entities/user.entity.js +3 -20
  57. package/dist/user-internal/entities/user.entity.js.map +1 -1
  58. package/dist/user-internal/user.controller.js +4 -0
  59. package/dist/user-internal/user.controller.js.map +1 -1
  60. package/dist/user-internal/user.service.js +2 -2
  61. package/dist/user-internal/user.service.js.map +1 -1
  62. package/package.json +1 -1
@@ -11,9 +11,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
13
  var InvitationService_1;
14
- import { Injectable, Logger, NotFoundException } from "@nestjs/common";
14
+ import { BadRequestException, ForbiddenException, Injectable, Logger, NotFoundException, } from "@nestjs/common";
15
15
  import { InjectRepository } from "@nestjs/typeorm";
16
- import { IsNull, LessThan, Repository } from "typeorm";
16
+ import { IsNull, MoreThan, Repository } from "typeorm";
17
17
  import { Roles } from "../organisation/dto/RolesEnum.js";
18
18
  import { Invitation } from "./entities/invitation.entity.js";
19
19
  import { SmtpEmailClient } from "../smtp-email-client/email-client.service.js";
@@ -40,7 +40,7 @@ let InvitationService = InvitationService_1 = class InvitationService {
40
40
  where: {
41
41
  uuid: invitationCode,
42
42
  acceptedOn: IsNull(),
43
- expiresOn: LessThan(new Date()),
43
+ expiresOn: MoreThan(new Date()),
44
44
  },
45
45
  relations: {
46
46
  organisationMembership: {
@@ -50,30 +50,26 @@ let InvitationService = InvitationService_1 = class InvitationService {
50
50
  },
51
51
  });
52
52
  }
53
- async acceptInvitation(invitationId) {
54
- await this.invitationRepository.manager.transaction(async (transactionalEntityManager) => {
55
- // get the invitation again to ensure we have the latest version
56
- const latestInvitation = await transactionalEntityManager.findOne(Invitation, {
57
- where: { id: invitationId },
58
- relations: {
59
- organisationMembership: true,
53
+ async getAllForOrg(orgId, requestUser) {
54
+ await this.canManageInvitationsForThisOrg({
55
+ orgUuid: orgId,
56
+ user: requestUser,
57
+ });
58
+ return this.invitationRepository.find({
59
+ where: {
60
+ organisationMembership: {
61
+ organisation: {
62
+ uuid: orgId,
63
+ },
60
64
  },
61
- });
62
- if (!latestInvitation) {
63
- throw new NotFoundException(`Invitation with id ${invitationId} not found`);
64
- }
65
- // set the invitation to accepted
66
- latestInvitation.acceptedOn = new Date();
67
- await transactionalEntityManager.save(latestInvitation);
68
- // set the user's membership to member and remove the invitation role
69
- const memberRole = new MembershipRole();
70
- memberRole.name = Roles.member;
71
- latestInvitation.organisationMembership.roles = [memberRole];
72
- await transactionalEntityManager.save(latestInvitation.organisationMembership);
65
+ },
73
66
  });
74
67
  }
75
68
  async create(createDto, createdBy) {
76
- await this.canManageInvitationsForThisOrg(createDto.organisationId, createdBy.id);
69
+ await this.canManageInvitationsForThisOrg({
70
+ orgId: createDto.organisationId,
71
+ user: createdBy,
72
+ });
77
73
  const existingMemberships = await this.orgMembershipRepository.find({
78
74
  where: {
79
75
  user: {
@@ -84,21 +80,20 @@ let InvitationService = InvitationService_1 = class InvitationService {
84
80
  },
85
81
  },
86
82
  relations: {
87
- invitation: true,
83
+ invitations: true,
88
84
  roles: true,
89
85
  },
90
86
  });
91
- if (existingMemberships.some((m) => m.roles.some((r) => r.name === Roles.member || r.name === Roles.owner))) {
87
+ if (existingMemberships.some((m) => m.roles?.some((r) => r.name === Roles.member || r.name === Roles.owner))) {
92
88
  const message = "A user with this email address is already a member of this organisation";
93
89
  this.logger.error(message, { createDto, createdBy });
94
90
  throw new Error(message);
95
91
  }
96
- if (existingMemberships.some((m) => m.invitation &&
97
- m.invitation.acceptedOn === null &&
98
- m.invitation.expiresOn > new Date())) {
92
+ if (existingMemberships.some((m) => m.invitations &&
93
+ m.invitations.some((mi) => mi.acceptedOn === null && mi.expiresOn > new Date()))) {
99
94
  const message = "An valid invitation with this email already exists for this organisation";
100
95
  this.logger.error(message, { createDto, createdBy });
101
- throw new Error(message);
96
+ throw new BadRequestException(message);
102
97
  }
103
98
  // new empty user
104
99
  const user = new User();
@@ -114,54 +109,90 @@ let InvitationService = InvitationService_1 = class InvitationService {
114
109
  unsavedInvitation.expiresOn.setDate(unsavedInvitation.expiresOn.getDate() + 1);
115
110
  unsavedInvitation.givenName = createDto.givenName;
116
111
  // create a new membership
117
- const membership = this.orgMembershipRepository.create();
112
+ const membership = this.orgMembershipRepository.create({
113
+ invitations: [],
114
+ });
118
115
  membership.organisationId = createDto.organisationId;
119
116
  membership.userId = savedUser.id;
120
- membership.invitation = unsavedInvitation;
117
+ membership.invitations?.push(unsavedInvitation);
121
118
  membership.roles = [role];
122
119
  const savedMembership = await this.orgMembershipRepository.save(membership);
123
120
  const retrievedMembership = await this.orgMembershipRepository.findOne({
124
121
  where: { id: savedMembership.id },
125
122
  relations: {
126
- invitation: true,
123
+ invitations: true,
127
124
  organisation: true,
128
125
  },
129
126
  });
130
- if (!retrievedMembership || !retrievedMembership.invitation) {
131
- this.logger.error("Newly saved membership not found", {
127
+ if (!retrievedMembership) {
128
+ this.logger.error("New membership did not save correctly", {
129
+ createDto,
130
+ createdBy,
131
+ createdMembershipId: savedMembership?.id,
132
+ });
133
+ throw new Error("New membership did not save correctly");
134
+ }
135
+ const validInvitation = retrievedMembership.invitations?.find((invitation) => invitation.expiresOn > new Date() && !invitation.acceptedOn);
136
+ if (!validInvitation) {
137
+ this.logger.error("New invitation did not save correctly", {
132
138
  createDto,
133
139
  createdBy,
134
140
  createdMembershipId: savedMembership?.id,
135
141
  });
136
- throw new Error("Newly saved membership not found");
142
+ throw new Error("New invitation did not save correctly");
137
143
  }
138
144
  // try to email the invitation
139
145
  await this.emailClient.sendMail([unsavedInvitation.emailAddress], [], `Invitation to join ${retrievedMembership.organisation.name}`, createdBy.uuid, `You have been invited to join ${retrievedMembership.organisation.name} by ${createdBy.givenName || "another member"}. Please click the link below to accept the invitation.
140
146
 
141
- ${this.configService.baseUrl}/accept-invitation/${retrievedMembership.invitation.uuid}`);
147
+ ${this.configService.baseUrl}/accept-invitation/${validInvitation.uuid}`);
142
148
  // if it gets to here we have a queued invitation
143
- retrievedMembership.invitation.notificationSent = new Date();
144
- return this.invitationRepository.save(retrievedMembership.invitation);
149
+ validInvitation.notificationSent = new Date();
150
+ const savedInvitation = await this.invitationRepository.save(validInvitation);
151
+ // we need to return the membership with the invitation
152
+ // torm doesn't like if we just assign and return so get it again
153
+ const fullInvitation = await this.invitationRepository.findOne({
154
+ where: {
155
+ id: savedInvitation.id,
156
+ },
157
+ relations: {
158
+ organisationMembership: {
159
+ user: true,
160
+ roles: true,
161
+ },
162
+ },
163
+ });
164
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
165
+ return fullInvitation;
145
166
  }
146
- async canManageInvitationsForThisOrg(orgId, userId) {
167
+ async canManageInvitationsForThisOrg(parameters) {
168
+ const { orgId, orgUuid, user } = parameters;
169
+ if (orgId === undefined && orgUuid === undefined) {
170
+ throw new BadRequestException("Either orgId or orgUuid must be provided");
171
+ }
172
+ // super admin can do anything
173
+ if (user.permissions.includes("modify:all")) {
174
+ return;
175
+ }
147
176
  const requesterMembership = await this.orgMembershipRepository.findOneOrFail({
148
177
  where: {
149
178
  organisation: {
150
179
  id: orgId,
180
+ uuid: orgUuid,
151
181
  },
152
182
  user: {
153
- id: userId,
183
+ id: user.id,
154
184
  },
155
185
  },
156
186
  relations: {
157
187
  roles: true,
158
188
  },
159
189
  });
160
- if (requesterMembership.roles.some((role) => role.name === Roles.owner)) {
161
- throw new Error("You must be an admin to invite users to an organisation");
190
+ if (requesterMembership.roles?.some((role) => role.name === Roles.owner)) {
191
+ return;
162
192
  }
193
+ throw new ForbiddenException("You don't have permission to work with invitations");
163
194
  }
164
- async remove(uuid, currentUserId) {
195
+ async remove(uuid, currentUser) {
165
196
  const invitation = await this.invitationRepository.findOneOrFail({
166
197
  where: {
167
198
  uuid,
@@ -173,7 +204,10 @@ let InvitationService = InvitationService_1 = class InvitationService {
173
204
  if (!invitation) {
174
205
  throw new NotFoundException();
175
206
  }
176
- await this.canManageInvitationsForThisOrg(invitation.organisationMembership.organisation.id, currentUserId);
207
+ await this.canManageInvitationsForThisOrg({
208
+ orgId: invitation.organisationMembership.organisation.id,
209
+ user: currentUser,
210
+ });
177
211
  return this.invitationRepository.remove(invitation);
178
212
  }
179
213
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invitation.service.js","sourceRoot":"","sources":["../../src/invitations/invitation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invitation.service.js","sourceRoot":"","sources":["../../src/invitations/invitation.service.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { ApiProperty } from "@nestjs/swagger";
11
+ import { Type } from "class-transformer";
12
+ import { IsArray, IsDefined, IsString, MinLength, ValidateNested, } from "class-validator";
11
13
  import { User } from "../../user-internal/entities/user.entity.js";
12
14
  export class CreateOrganisationDto {
13
15
  members;
@@ -15,15 +17,22 @@ export class CreateOrganisationDto {
15
17
  name;
16
18
  }
17
19
  __decorate([
20
+ Type(() => User),
18
21
  ApiProperty({ type: User, isArray: true }),
22
+ ValidateNested({ each: true }),
23
+ IsArray(),
19
24
  __metadata("design:type", Array)
20
25
  ], CreateOrganisationDto.prototype, "members", void 0);
21
26
  __decorate([
27
+ Type(() => User),
28
+ IsDefined(),
22
29
  ApiProperty({ type: User }),
23
30
  __metadata("design:type", User)
24
31
  ], CreateOrganisationDto.prototype, "owner", void 0);
25
32
  __decorate([
26
33
  ApiProperty(),
34
+ IsString(),
35
+ MinLength(1),
27
36
  __metadata("design:type", String)
28
37
  ], CreateOrganisationDto.prototype, "name", void 0);
29
38
  //# sourceMappingURL=create-organisation.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-organisation.dto.js","sourceRoot":"","sources":["../../../src/organisation/dto/create-organisation.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,6CAA6C,CAAC;AAEjE,MAAM,OAAO,qBAAqB;IAE9B,OAAO,CAAU;IAGjB,KAAK,CAAQ;IAGb,IAAI,CAAU;CACjB;AARG;IAAC,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;sDACxB;AAEjB;IAAC,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;8BAClB,IAAI;oDAAC;AAEb;IAAC,WAAW,EAAE;;mDACA"}
1
+ {"version":3,"file":"create-organisation.dto.js","sourceRoot":"","sources":["../../../src/organisation/dto/create-organisation.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACvC,OAAO,EACH,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,6CAA6C,CAAC;AAEjE,MAAM,OAAO,qBAAqB;IAK9B,OAAO,CAAU;IAKjB,KAAK,CAAQ;IAKb,IAAI,CAAU;CACjB;AAfG;IAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAChB,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IACxC,cAAc,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;IAC5B,OAAO,EAAE;;sDACO;AAEjB;IAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAChB,SAAS,EAAE;IACX,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;8BAClB,IAAI;oDAAC;AAEb;IAAC,WAAW,EAAE;IACb,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;;mDACC"}
@@ -7,5 +7,4 @@ export declare class MembershipRole {
7
7
  name: string;
8
8
  createdDate: Date;
9
9
  updateDate: Date;
10
- deletedDate: Date;
11
10
  }
@@ -7,9 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { ApiProperty } from "@nestjs/swagger";
11
- import { Column, CreateDateColumn, DeleteDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn, } from "typeorm";
10
+ import { ApiExtraModels, ApiProperty } from "@nestjs/swagger";
11
+ import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn, } from "typeorm";
12
12
  import { OrganisationMembership } from "../../organisation-memberships/entities/organisation-membership.entity.js";
13
+ import { Roles } from "../dto/RolesEnum.js";
13
14
  let MembershipRole = class MembershipRole {
14
15
  id;
15
16
  // we don't expose this because the roles are exposed on the membership
@@ -18,7 +19,6 @@ let MembershipRole = class MembershipRole {
18
19
  name;
19
20
  createdDate;
20
21
  updateDate;
21
- deletedDate;
22
22
  };
23
23
  __decorate([
24
24
  PrimaryGeneratedColumn(),
@@ -38,6 +38,7 @@ __decorate([
38
38
  __decorate([
39
39
  ApiProperty(),
40
40
  Column(),
41
+ ApiExtraModels(() => Roles),
41
42
  __metadata("design:type", String)
42
43
  ], MembershipRole.prototype, "name", void 0);
43
44
  __decorate([
@@ -50,11 +51,6 @@ __decorate([
50
51
  ApiProperty(),
51
52
  __metadata("design:type", Date)
52
53
  ], MembershipRole.prototype, "updateDate", void 0);
53
- __decorate([
54
- DeleteDateColumn(),
55
- ApiProperty(),
56
- __metadata("design:type", Date)
57
- ], MembershipRole.prototype, "deletedDate", void 0);
58
54
  MembershipRole = __decorate([
59
55
  Entity()
60
56
  ], MembershipRole);
@@ -1 +1 @@
1
- {"version":3,"file":"member-role.entity.js","sourceRoot":"","sources":["../../../src/organisation/entities/member-role.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACH,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AAG1G,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,EAAE,CAAU;IAEZ,uEAAuE;IAEvE,UAAU,CAAoC;IAKvC,YAAY,CAAU;IAI7B,IAAI,CAAU;IAId,WAAW,CAAQ;IAInB,UAAU,CAAQ;IAIlB,WAAW,CAAQ;CACtB,CAAA;AA5BG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;0CACF;AAGZ;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;;kDAC5B;AAE9C;IAAC,WAAW,EAAE;IACb,MAAM,EAAE;IACR,UAAU,CAAC,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;;oDACrB;AAE7B;IAAC,WAAW,EAAE;IACb,MAAM,EAAE;;4CACK;AAEd;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;mDAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;kDAAC;AAElB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;mDAAC;AA5BV,cAAc;IAD1B,MAAM,EAAE;GACI,cAAc,CA6B1B;SA7BY,cAAc"}
1
+ {"version":3,"file":"member-role.entity.js","sourceRoot":"","sources":["../../../src/organisation/entities/member-role.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EACH,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AACjH,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAGnC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,EAAE,CAAU;IAEZ,uEAAuE;IAEvE,UAAU,CAAoC;IAKvC,YAAY,CAAU;IAK7B,IAAI,CAAU;IAId,WAAW,CAAQ;IAInB,UAAU,CAAQ;CACrB,CAAA;AAzBG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;0CACF;AAGZ;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;;kDAC5B;AAE9C;IAAC,WAAW,EAAE;IACb,MAAM,EAAE;IACR,UAAU,CAAC,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;;oDACrB;AAE7B;IAAC,WAAW,EAAE;IACb,MAAM,EAAE;IACR,cAAc,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;;4CACd;AAEd;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;mDAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;kDAAC;AAzBT,cAAc;IAD1B,MAAM,EAAE;GACI,cAAc,CA0B1B;SA1BY,cAAc"}
@@ -3,11 +3,10 @@ import { OrganisationSubscriptionRecord } from "../../organisation-subscriptions
3
3
  export declare class Organisation {
4
4
  id: number;
5
5
  uuid: string;
6
- memberships: OrganisationMembership[];
7
- subscriptionRecords: OrganisationSubscriptionRecord[];
6
+ memberships?: OrganisationMembership[];
7
+ subscriptionRecords?: OrganisationSubscriptionRecord[];
8
8
  name: string;
9
9
  createdDate: Date;
10
10
  updateDate: Date;
11
11
  deletedDate: Date;
12
- nullChecks(): Promise<void>;
13
12
  }
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { ApiProperty } from "@nestjs/swagger";
11
11
  import { Type } from "class-transformer";
12
- import { AfterInsert, AfterLoad, AfterUpdate, Column, CreateDateColumn, DeleteDateColumn, Entity, Generated, Index, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from "typeorm";
12
+ import { Column, CreateDateColumn, DeleteDateColumn, Entity, Generated, Index, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from "typeorm";
13
13
  import { OrganisationMembership } from "../../organisation-memberships/entities/organisation-membership.entity.js";
14
14
  import { OrganisationSubscriptionRecord } from "../../organisation-subscriptions/entities/organisation-subscription.entity.js";
15
15
  let Organisation = class Organisation {
@@ -21,12 +21,6 @@ let Organisation = class Organisation {
21
21
  createdDate;
22
22
  updateDate;
23
23
  deletedDate;
24
- // eslint-disable-next-line @typescript-eslint/require-await
25
- async nullChecks() {
26
- if (!this.memberships) {
27
- this.memberships = [];
28
- }
29
- }
30
24
  };
31
25
  __decorate([
32
26
  PrimaryGeneratedColumn(),
@@ -77,14 +71,6 @@ __decorate([
77
71
  ApiProperty(),
78
72
  __metadata("design:type", Date)
79
73
  ], Organisation.prototype, "deletedDate", void 0);
80
- __decorate([
81
- AfterLoad(),
82
- AfterInsert(),
83
- AfterUpdate(),
84
- __metadata("design:type", Function),
85
- __metadata("design:paramtypes", []),
86
- __metadata("design:returntype", Promise)
87
- ], Organisation.prototype, "nullChecks", null);
88
74
  Organisation = __decorate([
89
75
  Entity()
90
76
  ], Organisation);
@@ -1 +1 @@
1
- {"version":3,"file":"organisation.entity.js","sourceRoot":"","sources":["../../../src/organisation/entities/organisation.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AACjH,OAAO,EAAC,8BAA8B,EAAC,MAAM,+EAA+E,CAAC;AAGtH,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGrB,EAAE,CAAU;IASL,IAAI,CAAU;IAMrB,WAAW,CAA4B;IAUvC,mBAAmB,CAAoC;IAIvD,IAAI,CAAU;IAId,WAAW,CAAQ;IAInB,UAAU,CAAQ;IAIlB,WAAW,CAAQ;IAEnB,4DAA4D;IAItD,AAAN,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACzB;IACL,CAAC;CACJ,CAAA;AAtDG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;wCACF;AAEZ;IAAC,MAAM,CAAC,MAAM,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB;KACtC,CAAC;IACD,SAAS,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE;IACb,KAAK,EAAE;;0CACa;AAErB;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE;QAC9D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;;iDACI;AAEvC;IAAC,SAAS,CACN,GAAG,EAAE,CAAC,8BAA8B,EACpC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EACzB;QACI,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CACJ;IACA,IAAI,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC;;yDACY;AAEvD;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;;0CACA;AAEd;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;iDAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;gDAAC;AAElB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;iDAAC;AAMb;IAHL,SAAS,EAAE;IACX,WAAW,EAAE;IACb,WAAW,EAAE;;;;8CAKb;AAtDQ,YAAY;IADxB,MAAM,EAAE;GACI,YAAY,CAuDxB;SAvDY,YAAY"}
1
+ {"version":3,"file":"organisation.entity.js","sourceRoot":"","sources":["../../../src/organisation/entities/organisation.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AACjH,OAAO,EAAC,8BAA8B,EAAC,MAAM,+EAA+E,CAAC;AAGtH,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGrB,EAAE,CAAU;IASL,IAAI,CAAU;IAMrB,WAAW,CAA4B;IAUvC,mBAAmB,CAAoC;IAIvD,IAAI,CAAU;IAId,WAAW,CAAQ;IAInB,UAAU,CAAQ;IAIlB,WAAW,CAAQ;CACtB,CAAA;AA5CG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;wCACF;AAEZ;IAAC,MAAM,CAAC,MAAM,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB;KACtC,CAAC;IACD,SAAS,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE;IACb,KAAK,EAAE;;0CACa;AAErB;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE;QAC9D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;;iDACI;AAEvC;IAAC,SAAS,CACN,GAAG,EAAE,CAAC,8BAA8B,EACpC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EACzB;QACI,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CACJ;IACA,IAAI,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC;;yDACY;AAEvD;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;;0CACA;AAEd;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;iDAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;gDAAC;AAElB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;iDAAC;AA5CV,YAAY;IADxB,MAAM,EAAE;GACI,YAAY,CA6CxB;SA7CY,YAAY"}
@@ -33,6 +33,8 @@ let OrganisationService = class OrganisationService {
33
33
  ownerMembership.user = createOrganisationDto.owner;
34
34
  const ownerRole = new MembershipRole();
35
35
  ownerRole.name = Roles.owner;
36
+ if (!ownerMembership.roles)
37
+ ownerMembership.roles = [];
36
38
  ownerMembership.roles.push(ownerRole);
37
39
  unsavedOrganisation.memberships.push(ownerMembership);
38
40
  // add all the others
@@ -41,6 +43,8 @@ let OrganisationService = class OrganisationService {
41
43
  membership.user = member;
42
44
  const memberRole = new MembershipRole();
43
45
  memberRole.name = Roles.member;
46
+ if (!membership.roles)
47
+ membership.roles = [];
44
48
  membership.roles.push(memberRole);
45
49
  return membership;
46
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"organisation.service.js","sourceRoot":"","sources":["../../src/organisation/organisation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organisation.service.js","sourceRoot":"","sources":["../../src/organisation/organisation.service.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { ApiProperty } from "@nestjs/swagger";
11
+ import { IsArray, IsInt } from "class-validator";
11
12
  export class CreateUpdateMembershipDto {
12
13
  userId;
13
14
  roles;
14
15
  }
15
16
  __decorate([
16
17
  ApiProperty(),
18
+ IsInt(),
17
19
  __metadata("design:type", Number)
18
20
  ], CreateUpdateMembershipDto.prototype, "userId", void 0);
19
21
  __decorate([
20
22
  ApiProperty({ type: String, isArray: true }),
23
+ IsArray(),
21
24
  __metadata("design:type", Array)
22
25
  ], CreateUpdateMembershipDto.prototype, "roles", void 0);
23
26
  //# sourceMappingURL=create-membership-dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-membership-dto.js","sourceRoot":"","sources":["../../../src/organisation-memberships/dtos/create-membership-dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,MAAM,OAAO,yBAAyB;IAElC,MAAM,CAAU;IAGhB,KAAK,CAAY;CACpB;AALG;IAAC,WAAW,EAAE;;yDACE;AAEhB;IAAC,WAAW,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;wDAC1B"}
1
+ {"version":3,"file":"create-membership-dto.js","sourceRoot":"","sources":["../../../src/organisation-memberships/dtos/create-membership-dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,yBAAyB;IAGlC,MAAM,CAAU;IAIhB,KAAK,CAAY;CACpB;AAPG;IAAC,WAAW,EAAE;IACb,KAAK,EAAE;;yDACQ;AAEhB;IAAC,WAAW,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAC1C,OAAO,EAAE;;wDACO"}
@@ -1,3 +1,4 @@
1
+ import { Relation } from "typeorm";
1
2
  import { Invitation } from "../../invitations/entities/invitation.entity.js";
2
3
  import { MembershipRole } from "../../organisation/entities/member-role.entity.js";
3
4
  import { Organisation } from "../../organisation/entities/organisation.entity.js";
@@ -9,11 +10,9 @@ export declare class OrganisationMembership {
9
10
  userId: number;
10
11
  organisation: Organisation;
11
12
  organisationId: number;
12
- invitation?: Invitation;
13
- invitationId: number;
14
- roles: MembershipRole[];
13
+ invitations?: Relation<Invitation>[];
14
+ roles?: MembershipRole[];
15
15
  createdDate: Date;
16
16
  updateDate: Date;
17
17
  deletedDate: Date;
18
- nullChecks(): Promise<void>;
19
18
  }
@@ -7,9 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { ApiProperty } from "@nestjs/swagger";
10
+ import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
11
11
  import { Type } from "class-transformer";
12
- import { AfterInsert, AfterLoad, AfterUpdate, Column, CreateDateColumn, DeleteDateColumn, Entity, Generated, Index, JoinColumn, ManyToOne, OneToMany, OneToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn, } from "typeorm";
12
+ import { Column, CreateDateColumn, DeleteDateColumn, Entity, Generated, Index, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, RelationId, UpdateDateColumn, } from "typeorm";
13
13
  import { Invitation } from "../../invitations/entities/invitation.entity.js";
14
14
  import { MembershipRole } from "../../organisation/entities/member-role.entity.js";
15
15
  import { Organisation } from "../../organisation/entities/organisation.entity.js";
@@ -21,18 +21,11 @@ let OrganisationMembership = class OrganisationMembership {
21
21
  userId;
22
22
  organisation;
23
23
  organisationId;
24
- invitation;
25
- invitationId;
24
+ invitations;
26
25
  roles;
27
26
  createdDate;
28
27
  updateDate;
29
28
  deletedDate;
30
- // eslint-disable-next-line @typescript-eslint/require-await
31
- async nullChecks() {
32
- if (!this.roles) {
33
- this.roles = [];
34
- }
35
- }
36
29
  };
37
30
  __decorate([
38
31
  PrimaryGeneratedColumn(),
@@ -76,27 +69,22 @@ __decorate([
76
69
  __metadata("design:type", Number)
77
70
  ], OrganisationMembership.prototype, "organisationId", void 0);
78
71
  __decorate([
79
- OneToOne(() => Invitation, (inv) => inv.organisationMembership, {
72
+ OneToMany(() => Invitation, (inv) => inv.organisationMembership, {
80
73
  eager: true,
81
74
  nullable: true,
82
75
  cascade: ["insert", "update"],
83
76
  }),
84
77
  JoinColumn(),
85
- __metadata("design:type", Invitation)
86
- ], OrganisationMembership.prototype, "invitation", void 0);
87
- __decorate([
88
- Column(),
89
- ApiProperty(),
90
- RelationId((membership) => membership.invitation),
91
- __metadata("design:type", Number)
92
- ], OrganisationMembership.prototype, "invitationId", void 0);
78
+ __metadata("design:type", Array)
79
+ ], OrganisationMembership.prototype, "invitations", void 0);
93
80
  __decorate([
94
- ApiProperty({ type: () => MembershipRole, isArray: true })
81
+ ApiPropertyOptional({ type: () => MembershipRole, isArray: true })
95
82
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
96
83
  ,
97
84
  OneToMany(() => MembershipRole, (role) => role.membership, {
98
85
  eager: true,
99
- cascade: true,
86
+ cascade: ["insert", "update"],
87
+ orphanedRowAction: "delete",
100
88
  }),
101
89
  Type(() => MembershipRole),
102
90
  __metadata("design:type", Array)
@@ -116,14 +104,6 @@ __decorate([
116
104
  ApiProperty(),
117
105
  __metadata("design:type", Date)
118
106
  ], OrganisationMembership.prototype, "deletedDate", void 0);
119
- __decorate([
120
- AfterLoad(),
121
- AfterInsert(),
122
- AfterUpdate(),
123
- __metadata("design:type", Function),
124
- __metadata("design:paramtypes", []),
125
- __metadata("design:returntype", Promise)
126
- ], OrganisationMembership.prototype, "nullChecks", null);
127
107
  OrganisationMembership = __decorate([
128
108
  Entity()
129
109
  ], OrganisationMembership);
@@ -1 +1 @@
1
- {"version":3,"file":"organisation-membership.entity.js","sourceRoot":"","sources":["../../../src/organisation-memberships/entities/organisation-membership.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organisation-membership.entity.js","sourceRoot":"","sources":["../../../src/organisation-memberships/entities/organisation-membership.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,UAAU,EAAC,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAC,YAAY,EAAC,MAAM,oDAAoD,CAAC;AAChF,OAAO,EAAC,IAAI,EAAC,MAAM,6CAA6C,CAAC;AAG1D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAG/B,EAAE,CAAU;IASL,IAAI,CAAU;IAMrB,IAAI,CAAQ;IAKL,MAAM,CAAU;IAMvB,YAAY,CAAgB;IAKrB,cAAc,CAAU;IAQ/B,WAAW,CAA0B;IAUrC,KAAK,CAAoB;IAIzB,WAAW,CAAQ;IAInB,UAAU,CAAQ;IAIlB,WAAW,CAAQ;CACtB,CAAA;AAhEG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;kDACF;AAEZ;IAAC,MAAM,CAAC,MAAM,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB;KACtC,CAAC;IACD,SAAS,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE;IACb,KAAK,EAAE;;oDACa;AAErB;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;QAC/C,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;8BACK,IAAI;oDAAC;AAEZ;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;IACb,UAAU,CAAC,CAAC,UAAkC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;;sDAC7C;AAEvB;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE;QACrD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;8BACa,YAAY;4DAAC;AAE5B;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;IACb,UAAU,CAAC,CAAC,UAAkC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;;8DAC7C;AAE/B;IAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,sBAAsB,EAAE;QAC9D,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;IACD,UAAU,EAAE;;2DACwB;AAErC;IAAC,mBAAmB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IACjE,+DAA+D;;IAC9D,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QACxD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC7B,iBAAiB,EAAE,QAAQ;KAC9B,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;;qDACF;AAEzB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;2DAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;0DAAC;AAElB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;2DAAC;AAhEV,sBAAsB;IADlC,MAAM,EAAE;GACI,sBAAsB,CAiElC;SAjEY,sBAAsB"}
@@ -63,19 +63,19 @@ let OrganisationMembershipsService = class OrganisationMembershipsService {
63
63
  // check if the user is allowed to work with memberships
64
64
  this.currentUserIsOwnerGuard(org, currentUserId);
65
65
  // existing membership for this user?
66
- const existingMembership = org.memberships.find((m) => m.user.id === createOmDto.userId);
66
+ const existingMembership = org.memberships?.find((m) => m.user.id === createOmDto.userId);
67
67
  if (existingMembership) {
68
68
  // add all roles to the existing membership
69
69
  for (const role of createOmDto.roles) {
70
- const existingRole = existingMembership.roles.find((r) => r.name === role);
70
+ const existingRole = existingMembership.roles?.find((r) => r.name === role);
71
71
  if (!existingRole) {
72
72
  const newRole = new MembershipRole();
73
73
  newRole.name = role;
74
- existingMembership.roles.push(newRole);
74
+ existingMembership.roles?.push(newRole);
75
75
  }
76
76
  }
77
77
  // remove all roles that are not in the DTO
78
- existingMembership.roles = existingMembership.roles.filter((r) => createOmDto.roles.includes(r.name));
78
+ existingMembership.roles = existingMembership.roles?.filter((r) => createOmDto.roles.includes(r.name));
79
79
  }
80
80
  else {
81
81
  // create a new membership
@@ -84,15 +84,15 @@ let OrganisationMembershipsService = class OrganisationMembershipsService {
84
84
  for (const role of createOmDto.roles) {
85
85
  const newRole = new MembershipRole();
86
86
  newRole.name = role;
87
- newMembership.roles.push(newRole);
87
+ newMembership.roles?.push(newRole);
88
88
  }
89
- org.memberships.push(newMembership);
89
+ org.memberships?.push(newMembership);
90
90
  }
91
91
  return await this.orgRepo.save(org);
92
92
  }
93
93
  currentUserIsOwnerGuard(org, currentUserId) {
94
- const membership = org.memberships.find((m) => m.user.id === currentUserId &&
95
- m.roles.some((r) => r.name === Roles.owner));
94
+ const membership = org.memberships?.find((m) => m.user.id === currentUserId &&
95
+ m.roles?.some((r) => r.name === Roles.owner));
96
96
  if (!membership) {
97
97
  throw new NotFoundException("You are not allowed to add a member to this organisation");
98
98
  }
@@ -115,7 +115,7 @@ let OrganisationMembershipsService = class OrganisationMembershipsService {
115
115
  // check if the user is allowed to work with memberships
116
116
  this.currentUserIsOwnerGuard(org, currentUserId);
117
117
  // remove the membership
118
- const membership = org.memberships.find((m) => m.uuid === membershipUuid);
118
+ const membership = org.memberships?.find((m) => m.uuid === membershipUuid);
119
119
  if (!membership) {
120
120
  throw new Error("Membership not found");
121
121
  }