@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.
- package/dist/authorization/authz.module.js +2 -2
- package/dist/authorization/authz.module.js.map +1 -1
- package/dist/authorization/services/UserValidation.service.d.ts +7 -3
- package/dist/authorization/services/UserValidation.service.js +97 -65
- package/dist/authorization/services/UserValidation.service.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/invitations/dto/create-invitation.dto.js +5 -0
- package/dist/invitations/dto/create-invitation.dto.js.map +1 -1
- package/dist/invitations/entities/invitation.entity.d.ts +1 -1
- package/dist/invitations/entities/invitation.entity.js +8 -6
- package/dist/invitations/entities/invitation.entity.js.map +1 -1
- package/dist/invitations/invitation.controller.d.ts +2 -0
- package/dist/invitations/invitation.controller.js +42 -4
- package/dist/invitations/invitation.controller.js.map +1 -1
- package/dist/invitations/invitation.service.d.ts +2 -2
- package/dist/invitations/invitation.service.js +78 -44
- package/dist/invitations/invitation.service.js.map +1 -1
- package/dist/organisation/dto/create-organisation.dto.js +9 -0
- package/dist/organisation/dto/create-organisation.dto.js.map +1 -1
- package/dist/organisation/entities/member-role.entity.d.ts +0 -1
- package/dist/organisation/entities/member-role.entity.js +4 -8
- package/dist/organisation/entities/member-role.entity.js.map +1 -1
- package/dist/organisation/entities/organisation.entity.d.ts +2 -3
- package/dist/organisation/entities/organisation.entity.js +1 -15
- package/dist/organisation/entities/organisation.entity.js.map +1 -1
- package/dist/organisation/organisation.service.js +4 -0
- package/dist/organisation/organisation.service.js.map +1 -1
- package/dist/organisation-memberships/dtos/create-membership-dto.js +3 -0
- package/dist/organisation-memberships/dtos/create-membership-dto.js.map +1 -1
- package/dist/organisation-memberships/entities/organisation-membership.entity.d.ts +3 -4
- package/dist/organisation-memberships/entities/organisation-membership.entity.js +9 -29
- package/dist/organisation-memberships/entities/organisation-membership.entity.js.map +1 -1
- package/dist/organisation-memberships/organisation-memberships.service.js +9 -9
- package/dist/organisation-memberships/organisation-memberships.service.js.map +1 -1
- package/dist/organisation-subscriptions/organisation-subscriptions.service.js +2 -2
- package/dist/organisation-subscriptions/organisation-subscriptions.service.js.map +1 -1
- package/dist/root-app/models/QueueItemDto.js +11 -1
- package/dist/root-app/models/QueueItemDto.js.map +1 -1
- package/dist/smtp-email-client/email.entity.js +4 -4
- package/dist/smtp-email-client/email.entity.js.map +1 -1
- package/dist/stripe-client/models/StripeCheckoutSessionResponseDto.js +3 -0
- package/dist/stripe-client/models/StripeCheckoutSessionResponseDto.js.map +1 -1
- package/dist/stripe-client/models/StripeCustomerPortalResponseDto.js +2 -0
- package/dist/stripe-client/models/StripeCustomerPortalResponseDto.js.map +1 -1
- package/dist/stripe-client/services/stripe-checkout.service.js +4 -3
- package/dist/stripe-client/services/stripe-checkout.service.js.map +1 -1
- package/dist/super-powers/super-powers.controller.d.ts +1 -1
- package/dist/super-powers/super-powers.controller.js +2 -2
- package/dist/super-powers/super-powers.controller.js.map +1 -1
- package/dist/super-powers/super-powers.service.js +2 -2
- package/dist/user-internal/dto/userResponseDto.js +0 -2
- package/dist/user-internal/dto/userResponseDto.js.map +1 -1
- package/dist/user-internal/entities/user.entity.d.ts +2 -3
- package/dist/user-internal/entities/user.entity.js +3 -20
- package/dist/user-internal/entities/user.entity.js.map +1 -1
- package/dist/user-internal/user.controller.js +4 -0
- package/dist/user-internal/user.controller.js.map +1 -1
- package/dist/user-internal/user.service.js +2 -2
- package/dist/user-internal/user.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,16 +15,16 @@ import { TypeOrmModule } from "@nestjs/typeorm";
|
|
|
15
15
|
import { User } from "../user-internal/entities/user.entity.js";
|
|
16
16
|
import { AuthzClientModule } from "../authzclient/authz-client.module.js";
|
|
17
17
|
import { ApiKeyStrategy } from "./strategies/apikeystrategy.js";
|
|
18
|
+
import { Invitation } from "../invitations/entities/invitation.entity.js";
|
|
18
19
|
let AuthzModule = class AuthzModule {
|
|
19
20
|
};
|
|
20
21
|
AuthzModule = __decorate([
|
|
21
22
|
Module({
|
|
22
23
|
imports: [
|
|
23
24
|
ConfigModule.forFeature(configVariables),
|
|
24
|
-
TypeOrmModule.forFeature([User]),
|
|
25
|
+
TypeOrmModule.forFeature([User, Invitation]),
|
|
25
26
|
PassportModule.register({ defaultStrategy: "jwt" }),
|
|
26
27
|
AuthzClientModule,
|
|
27
|
-
// InvitationModule,
|
|
28
28
|
],
|
|
29
29
|
providers: [
|
|
30
30
|
ApiKeyStrategy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authz.module.js","sourceRoot":"","sources":["../../src/authorization/authz.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC1D,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAM,0CAA0C,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"authz.module.js","sourceRoot":"","sources":["../../src/authorization/authz.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC1D,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAM,0CAA0C,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,8CAA8C,CAAC;AAkBjE,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAhBvB,MAAM,CAAC;QACJ,OAAO,EAAE;YACL,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC;YACxC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5C,cAAc,CAAC,QAAQ,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC;YACjD,iBAAiB;SACpB;QACD,SAAS,EAAE;YACP,cAAc;YACd,WAAW;YACX,wBAAwB;YACxB,qBAAqB;YACrB,cAAc;SACjB;QACD,OAAO,EAAE,CAAC,cAAc,EAAE,wBAAwB,CAAC;KACtD,CAAC;GACW,WAAW,CAAG;SAAd,WAAW"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { Repository } from "typeorm";
|
|
2
2
|
import { AuthZClientService } from "../../authzclient/authz.service.js";
|
|
3
3
|
import { UserProfile } from "../../authzclient/UserProfile.dto.js";
|
|
4
|
+
import { Invitation } from "../../invitations/entities/invitation.entity.js";
|
|
4
5
|
import { User } from "../../user-internal/entities/user.entity.js";
|
|
5
6
|
import { AccessToken } from "../models/AccessToken.js";
|
|
6
7
|
export declare class UserValidationService {
|
|
7
8
|
private userRepository;
|
|
8
9
|
private authzClient;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
private readonly invitationRepository;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
constructor(userRepository: Repository<User>, authzClient: AuthZClientService, invitationRepository: Repository<Invitation>);
|
|
13
|
+
getAuth0User(rawAccessToken: string): Promise<UserProfile>;
|
|
11
14
|
validateUserApiKey(apiKey: string): Promise<User | undefined>;
|
|
12
15
|
validateUser(payload: AccessToken, rawAccessToken: string, invitationId?: string): Promise<User | undefined>;
|
|
13
|
-
|
|
16
|
+
private findUserForRequest;
|
|
17
|
+
handleInvitedUser(rawAccessToken: string, invitationCode: string): Promise<User>;
|
|
14
18
|
handleNewIndependentUser(foundUser: User | null, rawAccessToken: string): Promise<User>;
|
|
15
19
|
mapAuthZUserToEntity(user: User, auth0User: UserProfile): void;
|
|
16
20
|
}
|
|
@@ -10,29 +10,37 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
+
var UserValidationService_1;
|
|
13
14
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
14
|
-
import { Injectable,
|
|
15
|
-
// NotFoundException
|
|
16
|
-
} from "@nestjs/common";
|
|
15
|
+
import { BadRequestException, Injectable, Logger, NotFoundException, } from "@nestjs/common";
|
|
17
16
|
import { InjectRepository } from "@nestjs/typeorm";
|
|
18
|
-
import { Repository } from "typeorm";
|
|
17
|
+
import { IsNull, MoreThan, Repository } from "typeorm";
|
|
19
18
|
import { AuthZClientService } from "../../authzclient/authz.service.js";
|
|
20
|
-
|
|
19
|
+
import { Invitation } from "../../invitations/entities/invitation.entity.js";
|
|
21
20
|
import { OrganisationMembership } from "../../organisation-memberships/entities/organisation-membership.entity.js";
|
|
22
21
|
import { Roles } from "../../organisation/dto/RolesEnum.js";
|
|
23
22
|
import { MembershipRole } from "../../organisation/entities/member-role.entity.js";
|
|
24
23
|
import { Organisation } from "../../organisation/entities/organisation.entity.js";
|
|
25
24
|
import { User } from "../../user-internal/entities/user.entity.js";
|
|
26
|
-
let UserValidationService = class UserValidationService {
|
|
25
|
+
let UserValidationService = UserValidationService_1 = class UserValidationService {
|
|
27
26
|
userRepository;
|
|
28
27
|
authzClient;
|
|
29
|
-
|
|
30
|
-
)
|
|
28
|
+
invitationRepository;
|
|
29
|
+
logger = new Logger(UserValidationService_1.name);
|
|
30
|
+
constructor(userRepository, authzClient, invitationRepository) {
|
|
31
31
|
this.userRepository = userRepository;
|
|
32
32
|
this.authzClient = authzClient;
|
|
33
|
+
this.invitationRepository = invitationRepository;
|
|
33
34
|
}
|
|
34
35
|
async getAuth0User(rawAccessToken) {
|
|
35
|
-
|
|
36
|
+
const result = await this.authzClient.getUser(rawAccessToken);
|
|
37
|
+
if (result === undefined) {
|
|
38
|
+
throw new Error("Error getting user profile from Auth0");
|
|
39
|
+
}
|
|
40
|
+
if (result.email_verified === false) {
|
|
41
|
+
throw new BadRequestException("Email not verified. You must verify your email address to continue.");
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
36
44
|
}
|
|
37
45
|
async validateUserApiKey(apiKey) {
|
|
38
46
|
const result = await this.userRepository.findOne({
|
|
@@ -49,78 +57,93 @@ let UserValidationService = class UserValidationService {
|
|
|
49
57
|
async validateUser(payload, rawAccessToken, invitationId) {
|
|
50
58
|
if (invitationId) {
|
|
51
59
|
// even though there is commonality here it's easier to treat the invitation path as completely separate
|
|
52
|
-
return this.
|
|
60
|
+
return this.handleInvitedUser(rawAccessToken, invitationId);
|
|
53
61
|
}
|
|
54
62
|
// try to find the user and their memberships
|
|
55
|
-
const foundUser = await this.
|
|
56
|
-
where: { auth0UserId: payload.sub },
|
|
57
|
-
relations: {
|
|
58
|
-
memberships: true,
|
|
59
|
-
},
|
|
60
|
-
});
|
|
63
|
+
const foundUser = await this.findUserForRequest(payload.sub);
|
|
61
64
|
// if user is
|
|
62
65
|
// - found
|
|
63
66
|
// - already configured
|
|
64
|
-
// - not trying to join an organisation
|
|
65
67
|
// then just return the user
|
|
66
68
|
if (foundUser !== undefined &&
|
|
67
69
|
foundUser !== null &&
|
|
68
|
-
foundUser
|
|
70
|
+
foundUser?.memberships !== undefined &&
|
|
71
|
+
foundUser?.memberships !== null &&
|
|
72
|
+
foundUser?.memberships?.length > 0) {
|
|
69
73
|
return foundUser;
|
|
70
74
|
}
|
|
71
75
|
// otherwise we need to add a membership to a user
|
|
72
76
|
return this.handleNewIndependentUser(foundUser, rawAccessToken);
|
|
73
77
|
}
|
|
78
|
+
async findUserForRequest(auth0UserId) {
|
|
79
|
+
return await this.userRepository.findOne({
|
|
80
|
+
where: { auth0UserId: auth0UserId },
|
|
81
|
+
relations: {
|
|
82
|
+
memberships: true,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
74
86
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
75
|
-
async
|
|
87
|
+
async handleInvitedUser(
|
|
76
88
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
77
89
|
rawAccessToken,
|
|
78
90
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
79
91
|
invitationCode) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// "Verified email address does not match invitation email address"
|
|
102
|
-
// );
|
|
103
|
-
// }
|
|
104
|
-
// await this.invitationService.acceptInvitation(invitation.id);
|
|
105
|
-
// this.mapAuthZUserToEntity(
|
|
106
|
-
// invitation.organisationMembership.user,
|
|
107
|
-
// auth0User
|
|
108
|
-
// );
|
|
109
|
-
// // eslint-disable-next-line sonarjs/prefer-immediate-return
|
|
110
|
-
// const updatedUser = this.userRepository.save(
|
|
111
|
-
// invitation.organisationMembership.user
|
|
112
|
-
// );
|
|
113
|
-
// return updatedUser;
|
|
114
|
-
}
|
|
115
|
-
async handleNewIndependentUser(foundUser, rawAccessToken) {
|
|
92
|
+
const now = new Date();
|
|
93
|
+
const invitation = await this.invitationRepository.findOne({
|
|
94
|
+
where: {
|
|
95
|
+
uuid: invitationCode,
|
|
96
|
+
acceptedOn: IsNull(),
|
|
97
|
+
expiresOn: MoreThan(now),
|
|
98
|
+
},
|
|
99
|
+
relations: {
|
|
100
|
+
organisationMembership: {
|
|
101
|
+
user: true,
|
|
102
|
+
organisation: true,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
if (!invitation) {
|
|
107
|
+
this.logger.log({
|
|
108
|
+
invitationCode,
|
|
109
|
+
now,
|
|
110
|
+
}, "invitation not found");
|
|
111
|
+
throw new NotFoundException("Valid invitation not found with provided code");
|
|
112
|
+
}
|
|
116
113
|
// get the user's profile details from auth0
|
|
117
114
|
const auth0User = await this.getAuth0User(rawAccessToken);
|
|
118
|
-
|
|
119
|
-
|
|
115
|
+
// set the invitation to accepted
|
|
116
|
+
invitation.acceptedOn = new Date();
|
|
117
|
+
// set the user's membership to member
|
|
118
|
+
const memberRole = invitation.organisationMembership.roles?.find((r) => r.name === Roles.invited);
|
|
119
|
+
if (!memberRole) {
|
|
120
|
+
throw new Error("Invited role not found for member");
|
|
121
|
+
}
|
|
122
|
+
memberRole.name = Roles.member;
|
|
123
|
+
this.mapAuthZUserToEntity(invitation.organisationMembership.user, auth0User);
|
|
124
|
+
try {
|
|
125
|
+
await this.invitationRepository.save(invitation);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (error.message?.includes("duplicate key")) {
|
|
129
|
+
throw new BadRequestException("User is already a member of this organisation");
|
|
130
|
+
}
|
|
131
|
+
throw error;
|
|
120
132
|
}
|
|
121
|
-
|
|
122
|
-
|
|
133
|
+
const userForRequest = await this.userRepository.findOne({
|
|
134
|
+
where: { id: invitation.organisationMembership.user.id },
|
|
135
|
+
relations: {
|
|
136
|
+
memberships: true,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
if (!userForRequest) {
|
|
140
|
+
throw new Error("User not found");
|
|
123
141
|
}
|
|
142
|
+
return userForRequest;
|
|
143
|
+
}
|
|
144
|
+
async handleNewIndependentUser(foundUser, rawAccessToken) {
|
|
145
|
+
// get the user's profile details from auth0
|
|
146
|
+
const auth0User = await this.getAuth0User(rawAccessToken);
|
|
124
147
|
// create role
|
|
125
148
|
const newRole = new MembershipRole();
|
|
126
149
|
newRole.name = Roles.owner;
|
|
@@ -138,9 +161,17 @@ let UserValidationService = class UserValidationService {
|
|
|
138
161
|
// assign the membership
|
|
139
162
|
user.memberships = [membership];
|
|
140
163
|
this.mapAuthZUserToEntity(user, auth0User);
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
|
|
164
|
+
const savedUser = await this.userRepository.save(user);
|
|
165
|
+
const userForRequest = await this.userRepository.findOne({
|
|
166
|
+
where: { id: savedUser.id },
|
|
167
|
+
relations: {
|
|
168
|
+
memberships: true,
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
if (!userForRequest) {
|
|
172
|
+
throw new Error("User not found");
|
|
173
|
+
}
|
|
174
|
+
return userForRequest;
|
|
144
175
|
}
|
|
145
176
|
mapAuthZUserToEntity(user, auth0User) {
|
|
146
177
|
user.auth0UserId = auth0User.sub;
|
|
@@ -154,12 +185,13 @@ let UserValidationService = class UserValidationService {
|
|
|
154
185
|
user.username = auth0User.preferred_username;
|
|
155
186
|
}
|
|
156
187
|
};
|
|
157
|
-
UserValidationService = __decorate([
|
|
188
|
+
UserValidationService = UserValidationService_1 = __decorate([
|
|
158
189
|
Injectable(),
|
|
159
190
|
__param(0, InjectRepository(User)),
|
|
191
|
+
__param(2, InjectRepository(Invitation)),
|
|
160
192
|
__metadata("design:paramtypes", [Repository,
|
|
161
|
-
AuthZClientService
|
|
162
|
-
|
|
193
|
+
AuthZClientService,
|
|
194
|
+
Repository])
|
|
163
195
|
], UserValidationService);
|
|
164
196
|
export { UserValidationService };
|
|
165
197
|
//# sourceMappingURL=UserValidation.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserValidation.service.js","sourceRoot":"","sources":["../../../src/authorization/services/UserValidation.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserValidation.service.js","sourceRoot":"","sources":["../../../src/authorization/services/UserValidation.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ import { SwaggerGen } from "./root-app/SwaggerGen.js";
|
|
|
14
14
|
import { TwitterClientService } from "./twitter-client/services/twitter-client.service.js";
|
|
15
15
|
import { CoreConfigModule } from "./core-config/CoreConfig.module.js";
|
|
16
16
|
import { CliCommandService } from "./runningCommandLine/CliCommandService.js";
|
|
17
|
+
export { CoreConfigurationService, SmtpEmailClientModule, CoreModule, CoreConfigModule, SwaggerGen, PostgresDatabaseModule as DatabaseModule, PostgresTypeOrmConfigurationProvider as TypeOrmConfigurationProvider, SmtpEmailClient, ValidatedConfigurationService, SqliteDatabaseModule, SqliteDatabaseConfigurationService, TwitterClientService, TwitterAccountModule, EUploadMimeType, RunningCommandLineModule, CliCommandService, };
|
|
18
|
+
export { SuperPowersModule } from "./super-powers/super-powers.module.js";
|
|
17
19
|
export { OrganisationModule } from "./organisation/organisation.module.js";
|
|
18
20
|
export { OrganisationMembershipsService } from "./organisation-memberships/organisation-memberships.service.js";
|
|
19
21
|
export { OrganisationMembershipsModule } from "./organisation-memberships/organisation-memberships.module.js";
|
|
@@ -47,4 +49,3 @@ export { UserApiKeyController } from "./user-api-key/user-apikey.controller.js";
|
|
|
47
49
|
export { UserApiKeyModule } from "./user-api-key/user-apikey.module.js";
|
|
48
50
|
export { User } from "./user-internal/entities/user.entity.js";
|
|
49
51
|
export { UserService } from "./user-internal/user.service.js";
|
|
50
|
-
export { CoreConfigurationService, SmtpEmailClientModule, CoreModule, CoreConfigModule, SwaggerGen, PostgresDatabaseModule as DatabaseModule, PostgresTypeOrmConfigurationProvider as TypeOrmConfigurationProvider, SmtpEmailClient, ValidatedConfigurationService, SqliteDatabaseModule, SqliteDatabaseConfigurationService, TwitterClientService, TwitterAccountModule, EUploadMimeType, RunningCommandLineModule, CliCommandService, };
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,8 @@ import { SwaggerGen } from "./root-app/SwaggerGen.js";
|
|
|
16
16
|
import { TwitterClientService } from "./twitter-client/services/twitter-client.service.js";
|
|
17
17
|
import { CoreConfigModule } from "./core-config/CoreConfig.module.js";
|
|
18
18
|
import { CliCommandService } from "./runningCommandLine/CliCommandService.js";
|
|
19
|
+
export { CoreConfigurationService, SmtpEmailClientModule, CoreModule, CoreConfigModule, SwaggerGen, PostgresDatabaseModule as DatabaseModule, PostgresTypeOrmConfigurationProvider as TypeOrmConfigurationProvider, SmtpEmailClient, ValidatedConfigurationService, SqliteDatabaseModule, SqliteDatabaseConfigurationService, TwitterClientService, TwitterAccountModule, EUploadMimeType, RunningCommandLineModule, CliCommandService, };
|
|
20
|
+
export { SuperPowersModule } from "./super-powers/super-powers.module.js";
|
|
19
21
|
export { OrganisationModule } from "./organisation/organisation.module.js";
|
|
20
22
|
// org subscriptions
|
|
21
23
|
export { OrganisationMembershipsService } from "./organisation-memberships/organisation-memberships.service.js";
|
|
@@ -52,5 +54,4 @@ export { UserApiKeyController } from "./user-api-key/user-apikey.controller.js";
|
|
|
52
54
|
export { UserApiKeyModule } from "./user-api-key/user-apikey.module.js";
|
|
53
55
|
export { User } from "./user-internal/entities/user.entity.js";
|
|
54
56
|
export { UserService } from "./user-internal/user.service.js";
|
|
55
|
-
export { CoreConfigurationService, SmtpEmailClientModule, CoreModule, CoreConfigModule, SwaggerGen, PostgresDatabaseModule as DatabaseModule, PostgresTypeOrmConfigurationProvider as TypeOrmConfigurationProvider, SmtpEmailClient, ValidatedConfigurationService, SqliteDatabaseModule, SqliteDatabaseConfigurationService, TwitterClientService, TwitterAccountModule, EUploadMimeType, RunningCommandLineModule, CliCommandService, };
|
|
56
57
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,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
10
|
import { ApiProperty } from "@nestjs/swagger";
|
|
11
|
+
import { IsEmail, IsInt, IsString, MinLength } from "class-validator";
|
|
11
12
|
export class CreateInvitationDto {
|
|
12
13
|
givenName;
|
|
13
14
|
emailAddress;
|
|
@@ -15,14 +16,18 @@ export class CreateInvitationDto {
|
|
|
15
16
|
}
|
|
16
17
|
__decorate([
|
|
17
18
|
ApiProperty(),
|
|
19
|
+
IsString(),
|
|
20
|
+
MinLength(1),
|
|
18
21
|
__metadata("design:type", String)
|
|
19
22
|
], CreateInvitationDto.prototype, "givenName", void 0);
|
|
20
23
|
__decorate([
|
|
21
24
|
ApiProperty(),
|
|
25
|
+
IsEmail(),
|
|
22
26
|
__metadata("design:type", String)
|
|
23
27
|
], CreateInvitationDto.prototype, "emailAddress", void 0);
|
|
24
28
|
__decorate([
|
|
25
29
|
ApiProperty(),
|
|
30
|
+
IsInt(),
|
|
26
31
|
__metadata("design:type", Number)
|
|
27
32
|
], CreateInvitationDto.prototype, "organisationId", void 0);
|
|
28
33
|
//# sourceMappingURL=create-invitation.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-invitation.dto.js","sourceRoot":"","sources":["../../../src/invitations/dto/create-invitation.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-invitation.dto.js","sourceRoot":"","sources":["../../../src/invitations/dto/create-invitation.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEpE,MAAM,OAAO,mBAAmB;IAI5B,SAAS,CAAU;IAInB,YAAY,CAAU;IAItB,cAAc,CAAU;CAC3B;AAZG;IAAC,WAAW,EAAE;IACb,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;;sDACM;AAEnB;IAAC,WAAW,EAAE;IACb,OAAO,EAAE;;yDACY;AAEtB;IAAC,WAAW,EAAE;IACb,KAAK,EAAE;;2DACgB"}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { OrganisationMembership } from "../../organisation-memberships/entities/organisation-membership.entity.js";
|
|
11
11
|
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
12
12
|
import { Type } from "class-transformer";
|
|
13
|
-
import { Column, CreateDateColumn, DeleteDateColumn, Entity, Generated,
|
|
13
|
+
import { Column, CreateDateColumn, DeleteDateColumn, Entity, Generated, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, } from "typeorm";
|
|
14
14
|
let Invitation = class Invitation {
|
|
15
15
|
id;
|
|
16
16
|
uuid;
|
|
@@ -49,8 +49,8 @@ __decorate([
|
|
|
49
49
|
__metadata("design:type", String)
|
|
50
50
|
], Invitation.prototype, "emailAddress", void 0);
|
|
51
51
|
__decorate([
|
|
52
|
-
Column(),
|
|
53
|
-
|
|
52
|
+
Column({ nullable: true }),
|
|
53
|
+
ApiPropertyOptional(),
|
|
54
54
|
__metadata("design:type", Date)
|
|
55
55
|
], Invitation.prototype, "notificationSent", void 0);
|
|
56
56
|
__decorate([
|
|
@@ -59,14 +59,16 @@ __decorate([
|
|
|
59
59
|
__metadata("design:type", Date)
|
|
60
60
|
], Invitation.prototype, "expiresOn", void 0);
|
|
61
61
|
__decorate([
|
|
62
|
-
Column(),
|
|
62
|
+
Column({ nullable: true }),
|
|
63
63
|
ApiPropertyOptional(),
|
|
64
64
|
__metadata("design:type", Date)
|
|
65
65
|
], Invitation.prototype, "acceptedOn", void 0);
|
|
66
66
|
__decorate([
|
|
67
|
-
ApiProperty(),
|
|
67
|
+
ApiProperty({ type: () => OrganisationMembership }),
|
|
68
68
|
Type(() => OrganisationMembership),
|
|
69
|
-
|
|
69
|
+
ManyToOne(() => OrganisationMembership, (om) => om.invitations, {
|
|
70
|
+
cascade: ["insert", "update"],
|
|
71
|
+
}),
|
|
70
72
|
__metadata("design:type", Object)
|
|
71
73
|
], Invitation.prototype, "organisationMembership", void 0);
|
|
72
74
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitation.entity.js","sourceRoot":"","sources":["../../../src/invitations/entities/invitation.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AACjH,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,
|
|
1
|
+
{"version":3,"file":"invitation.entity.js","sourceRoot":"","sources":["../../../src/invitations/entities/invitation.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,2EAA2E,CAAC;AACjH,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,SAAS,EACT,sBAAsB,EAEtB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGV,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGnB,EAAE,CAAU;IAQL,IAAI,CAAU;IAIrB,SAAS,CAAU;IAInB,YAAY,CAAU;IAItB,gBAAgB,CAAQ;IAIxB,SAAS,CAAQ;IAIjB,UAAU,CAAQ;IAOlB,sBAAsB,CAAoC;IAI1D,WAAW,CAAQ;IAInB,UAAU,CAAQ;IAIlB,WAAW,CAAQ;CACtB,CAAA;AAlDG;IAAC,sBAAsB,EAAE;IACxB,WAAW,EAAE;;sCACF;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;;wCACO;AAErB;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;;6CACK;AAEnB;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;;gDACQ;AAEtB;IAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IACxB,mBAAmB,EAAE;8BACH,IAAI;oDAAC;AAExB;IAAC,MAAM,EAAE;IACR,WAAW,EAAE;8BACF,IAAI;6CAAC;AAEjB;IAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IACxB,mBAAmB,EAAE;8BACT,IAAI;8CAAC;AAElB;IAAC,WAAW,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAC,CAAC;IACjD,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;IAClC,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE;QAC7D,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAChC,CAAC;;0DACwD;AAE1D;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACA,IAAI;+CAAC;AAEnB;IAAC,gBAAgB,EAAE;IAClB,WAAW,EAAE;8BACD,IAAI;8CAAC;AAElB;IAAC,gBAAgB,EAAE;IAClB,mBAAmB,EAAE;8BACR,IAAI;+CAAC;AAlDV,UAAU;IADtB,MAAM,EAAE;GACI,UAAU,CAmDtB;SAnDY,UAAU"}
|
|
@@ -5,6 +5,8 @@ import { CreateInvitationDto } from "./dto/create-invitation.dto.js";
|
|
|
5
5
|
export declare class InvitationController {
|
|
6
6
|
private readonly invitationService;
|
|
7
7
|
constructor(invitationService: InvitationService);
|
|
8
|
+
accept(invitationId: string, request: RequestWithUser): Promise<boolean>;
|
|
9
|
+
getAllForOrg(orgId: string, request: RequestWithUser): Promise<Invitation[]>;
|
|
8
10
|
create(createDto: CreateInvitationDto, request: RequestWithUser): Promise<Invitation>;
|
|
9
11
|
remove(uuid: string, request: RequestWithUser): Promise<boolean>;
|
|
10
12
|
}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Controller, Request, Body, Param, Delete, UseGuards, Post, } from "@nestjs/common";
|
|
13
|
+
import { Controller, Request, Body, Param, Delete, UseGuards, Post, Query, Get, } from "@nestjs/common";
|
|
14
14
|
import { ApiBearerAuth, ApiOkResponse, ApiTags } from "@nestjs/swagger";
|
|
15
15
|
import { AuthGuard } from "@nestjs/passport";
|
|
16
16
|
import { Invitation } from "./entities/invitation.entity.js";
|
|
@@ -21,14 +21,52 @@ let InvitationController = class InvitationController {
|
|
|
21
21
|
constructor(invitationService) {
|
|
22
22
|
this.invitationService = invitationService;
|
|
23
23
|
}
|
|
24
|
+
// The following method exists to expose the query string param
|
|
25
|
+
// but invitation work is kicked off by the auth strategy as it
|
|
26
|
+
// tries to resolve the correct user there in the middleware
|
|
27
|
+
// before the request reaches the controller
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
29
|
+
async accept(
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
invitationId,
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
+
request) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
// this id here feels a bit backwards
|
|
37
|
+
async getAllForOrg(
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
|
+
orgId,
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
41
|
+
request) {
|
|
42
|
+
return this.invitationService.getAllForOrg(orgId, request.user);
|
|
43
|
+
}
|
|
24
44
|
async create(createDto, request) {
|
|
25
45
|
return this.invitationService.create(createDto, request.user);
|
|
26
46
|
}
|
|
27
47
|
async remove(uuid, request) {
|
|
28
|
-
const deleteResult = await this.invitationService.remove(uuid, request.user
|
|
48
|
+
const deleteResult = await this.invitationService.remove(uuid, request.user);
|
|
29
49
|
return deleteResult.deletedDate !== undefined;
|
|
30
50
|
}
|
|
31
51
|
};
|
|
52
|
+
__decorate([
|
|
53
|
+
Post("accept"),
|
|
54
|
+
ApiOkResponse(),
|
|
55
|
+
__param(0, Query("invitationId")),
|
|
56
|
+
__param(1, Request()),
|
|
57
|
+
__metadata("design:type", Function),
|
|
58
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
59
|
+
__metadata("design:returntype", Promise)
|
|
60
|
+
], InvitationController.prototype, "accept", null);
|
|
61
|
+
__decorate([
|
|
62
|
+
Get(":orgId"),
|
|
63
|
+
ApiOkResponse({ type: [Invitation] }),
|
|
64
|
+
__param(0, Param("orgId")),
|
|
65
|
+
__param(1, Request()),
|
|
66
|
+
__metadata("design:type", Function),
|
|
67
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
68
|
+
__metadata("design:returntype", Promise)
|
|
69
|
+
], InvitationController.prototype, "getAllForOrg", null);
|
|
32
70
|
__decorate([
|
|
33
71
|
Post(),
|
|
34
72
|
ApiOkResponse({ type: Invitation }),
|
|
@@ -50,8 +88,8 @@ __decorate([
|
|
|
50
88
|
InvitationController = __decorate([
|
|
51
89
|
UseGuards(AuthGuard("jwt")),
|
|
52
90
|
ApiBearerAuth(),
|
|
53
|
-
Controller("
|
|
54
|
-
ApiTags("
|
|
91
|
+
Controller("invitations"),
|
|
92
|
+
ApiTags("Invitations"),
|
|
55
93
|
__metadata("design:paramtypes", [InvitationService])
|
|
56
94
|
], InvitationController);
|
|
57
95
|
export { InvitationController };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitation.controller.js","sourceRoot":"","sources":["../../src/invitations/invitation.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACH,UAAU,EACV,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,
|
|
1
|
+
{"version":3,"file":"invitation.controller.js","sourceRoot":"","sources":["../../src/invitations/invitation.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACH,UAAU,EACV,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,EACJ,KAAK,EACL,GAAG,GACN,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAM5D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACA;IAA7B,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAErE,+DAA+D;IAC/D,+DAA+D;IAC/D,4DAA4D;IAC5D,4CAA4C;IAC5C,4DAA4D;IAGtD,AAAN,KAAK,CAAC,MAAM;IACR,6DAA6D;IACtC,YAAoB;IAC3C,6DAA6D;IAClD,OAAwB;QAEnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAqC;IAG/B,AAAN,KAAK,CAAC,YAAY;IACd,6DAA6D;IAC7C,KAAa;IAC7B,6DAA6D;IAClD,OAAwB;QAEnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACA,SAA8B,EAC3B,OAAwB;QAEnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACO,IAAY,EAChB,OAAwB;QAEnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,IAAI,EACJ,OAAO,CAAC,IAAI,CACf,CAAC;QAEF,OAAO,YAAY,CAAC,WAAW,KAAK,SAAS,CAAC;IAClD,CAAC;CACJ,CAAA;AA3CS;IAFL,IAAI,CAAC,QAAQ,CAAC;IACd,aAAa,EAAE;IAGX,WAAA,KAAK,CAAC,cAAc,CAAC,CAAA;IAErB,WAAA,OAAO,EAAE,CAAA;;;;kDAGb;AAKK;IAFL,GAAG,CAAC,QAAQ,CAAC;IACb,aAAa,CAAC,EAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC,CAAC;IAG/B,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;IAEd,WAAA,OAAO,EAAE,CAAA;;;;wDAGb;AAIK;IAFL,IAAI,EAAE;IACN,aAAa,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;IAE7B,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,OAAO,EAAE,CAAA;;qCADS,mBAAmB;;kDAIzC;AAIK;IAFL,MAAM,CAAC,OAAO,CAAC;IACf,aAAa,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;IAE1B,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IACb,WAAA,OAAO,EAAE,CAAA;;;;kDAQb;AApDQ,oBAAoB;IAJhC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3B,aAAa,EAAE;IACf,UAAU,CAAC,aAAa,CAAC;IACzB,OAAO,CAAC,aAAa,CAAC;qCAE6B,iBAAiB;GADxD,oBAAoB,CAqDhC;SArDY,oBAAoB"}
|
|
@@ -15,8 +15,8 @@ export declare class InvitationService {
|
|
|
15
15
|
private readonly logger;
|
|
16
16
|
constructor(invitationRepository: Repository<Invitation>, orgMembershipRepository: Repository<OrganisationMembership>, userRepository: Repository<User>, emailClient: SmtpEmailClient, configService: InvitationsConfigurationService);
|
|
17
17
|
getOneActiveInvitation(invitationCode: string): Promise<Invitation | null>;
|
|
18
|
-
|
|
18
|
+
getAllForOrg(orgId: string, requestUser: RequestUser): Promise<Invitation[]>;
|
|
19
19
|
create(createDto: CreateInvitationDto, createdBy: RequestUser): Promise<Invitation>;
|
|
20
20
|
private canManageInvitationsForThisOrg;
|
|
21
|
-
remove(uuid: string,
|
|
21
|
+
remove(uuid: string, currentUser: RequestUser): Promise<Invitation>;
|
|
22
22
|
}
|