summaryrefslogtreecommitdiff
path: root/src/models/repositories/user-group-invite.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/repositories/user-group-invite.ts')
-rw-r--r--src/models/repositories/user-group-invite.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/models/repositories/user-group-invite.ts b/src/models/repositories/user-group-invite.ts
new file mode 100644
index 0000000000..1d4c2aa15f
--- /dev/null
+++ b/src/models/repositories/user-group-invite.ts
@@ -0,0 +1,24 @@
+import { EntityRepository, Repository } from 'typeorm';
+import { UserGroupInvite } from '../entities/user-group-invite';
+import { UserGroups } from '..';
+import { ensure } from '../../prelude/ensure';
+
+@EntityRepository(UserGroupInvite)
+export class UserGroupInviteRepository extends Repository<UserGroupInvite> {
+ public async pack(
+ src: UserGroupInvite['id'] | UserGroupInvite,
+ ) {
+ const invite = typeof src === 'object' ? src : await this.findOne(src).then(ensure);
+
+ return {
+ id: invite.id,
+ group: await UserGroups.pack(invite.userGroup || invite.userGroupId),
+ };
+ }
+
+ public packMany(
+ invites: any[],
+ ) {
+ return Promise.all(invites.map(x => this.pack(x)));
+ }
+}