summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-02-13 02:17:54 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-02-13 02:17:54 +0900
commit2feef8151625d9ba5d9c8b1850679b7fe84af809 (patch)
tree2939f4fe0d06a1ad14ed8b676de99bfc314bc75c /src/server/api/endpoints
parentフランス語と関西弁を有効に (#5925) (diff)
downloadsharkey-2feef8151625d9ba5d9c8b1850679b7fe84af809.tar.gz
sharkey-2feef8151625d9ba5d9c8b1850679b7fe84af809.tar.bz2
sharkey-2feef8151625d9ba5d9c8b1850679b7fe84af809.zip
グループ招待の通知とか
Resolve #5880 Resolve #5927
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/i/user-group-invites.ts12
-rw-r--r--src/server/api/endpoints/users/groups/invitations/accept.ts20
-rw-r--r--src/server/api/endpoints/users/groups/invitations/reject.ts18
-rw-r--r--src/server/api/endpoints/users/groups/invite.ts18
4 files changed, 37 insertions, 31 deletions
diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/src/server/api/endpoints/i/user-group-invites.ts
index 9d07fa31a4..37eaba06d2 100644
--- a/src/server/api/endpoints/i/user-group-invites.ts
+++ b/src/server/api/endpoints/i/user-group-invites.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
-import { UserGroupInvites } from '../../../../models';
+import { UserGroupInvitations } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
@@ -33,13 +33,13 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
- const query = makePaginationQuery(UserGroupInvites.createQueryBuilder('invite'), ps.sinceId, ps.untilId)
- .andWhere(`invite.userId = :meId`, { meId: user.id })
- .leftJoinAndSelect('invite.userGroup', 'user_group');
+ const query = makePaginationQuery(UserGroupInvitations.createQueryBuilder('invitation'), ps.sinceId, ps.untilId)
+ .andWhere(`invitation.userId = :meId`, { meId: user.id })
+ .leftJoinAndSelect('invitation.userGroup', 'user_group');
- const invites = await query
+ const invitations = await query
.take(ps.limit!)
.getMany();
- return await UserGroupInvites.packMany(invites);
+ return await UserGroupInvitations.packMany(invitations);
});
diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/src/server/api/endpoints/users/groups/invitations/accept.ts
index 33779dd349..cb5cb7bd05 100644
--- a/src/server/api/endpoints/users/groups/invitations/accept.ts
+++ b/src/server/api/endpoints/users/groups/invitations/accept.ts
@@ -2,14 +2,14 @@ import $ from 'cafy';
import { ID } from '../../../../../../misc/cafy-id';
import define from '../../../../define';
import { ApiError } from '../../../../error';
-import { UserGroupJoinings, UserGroupInvites } from '../../../../../../models';
+import { UserGroupJoinings, UserGroupInvitations } from '../../../../../../models';
import { genId } from '../../../../../../misc/gen-id';
import { UserGroupJoining } from '../../../../../../models/entities/user-group-joining';
export const meta = {
desc: {
'ja-JP': 'ユーザーグループへの招待を承認します。',
- 'en-US': 'Accept invite of a user group.'
+ 'en-US': 'Accept invitation of a user group.'
},
tags: ['groups', 'users'],
@@ -19,11 +19,11 @@ export const meta = {
kind: 'write:user-groups',
params: {
- inviteId: {
+ invitationId: {
validator: $.type(ID),
desc: {
'ja-JP': '招待ID',
- 'en-US': 'The invite ID'
+ 'en-US': 'The invitation ID'
}
},
},
@@ -39,15 +39,15 @@ export const meta = {
export default define(meta, async (ps, user) => {
// Fetch the invitation
- const invite = await UserGroupInvites.findOne({
- id: ps.inviteId,
+ const invitation = await UserGroupInvitations.findOne({
+ id: ps.invitationId,
});
- if (invite == null) {
+ if (invitation == null) {
throw new ApiError(meta.errors.noSuchInvitation);
}
- if (invite.userId !== user.id) {
+ if (invitation.userId !== user.id) {
throw new ApiError(meta.errors.noSuchInvitation);
}
@@ -56,8 +56,8 @@ export default define(meta, async (ps, user) => {
id: genId(),
createdAt: new Date(),
userId: user.id,
- userGroupId: invite.userGroupId
+ userGroupId: invitation.userGroupId
} as UserGroupJoining);
- UserGroupInvites.delete(invite.id);
+ UserGroupInvitations.delete(invitation.id);
});
diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/src/server/api/endpoints/users/groups/invitations/reject.ts
index e9e7bc8b48..b9c25c7670 100644
--- a/src/server/api/endpoints/users/groups/invitations/reject.ts
+++ b/src/server/api/endpoints/users/groups/invitations/reject.ts
@@ -2,12 +2,12 @@ import $ from 'cafy';
import { ID } from '../../../../../../misc/cafy-id';
import define from '../../../../define';
import { ApiError } from '../../../../error';
-import { UserGroupInvites } from '../../../../../../models';
+import { UserGroupInvitations } from '../../../../../../models';
export const meta = {
desc: {
'ja-JP': 'ユーザーグループへの招待を拒否します。',
- 'en-US': 'Reject invite of a user group.'
+ 'en-US': 'Reject invitation of a user group.'
},
tags: ['groups', 'users'],
@@ -17,11 +17,11 @@ export const meta = {
kind: 'write:user-groups',
params: {
- inviteId: {
+ invitationId: {
validator: $.type(ID),
desc: {
'ja-JP': '招待ID',
- 'en-US': 'The invite ID'
+ 'en-US': 'The invitation ID'
}
},
},
@@ -37,17 +37,17 @@ export const meta = {
export default define(meta, async (ps, user) => {
// Fetch the invitation
- const invite = await UserGroupInvites.findOne({
- id: ps.inviteId,
+ const invitation = await UserGroupInvitations.findOne({
+ id: ps.invitationId,
});
- if (invite == null) {
+ if (invitation == null) {
throw new ApiError(meta.errors.noSuchInvitation);
}
- if (invite.userId !== user.id) {
+ if (invitation.userId !== user.id) {
throw new ApiError(meta.errors.noSuchInvitation);
}
- await UserGroupInvites.delete(invite.id);
+ await UserGroupInvitations.delete(invitation.id);
});
diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts
index 503184a92f..bd32b00a63 100644
--- a/src/server/api/endpoints/users/groups/invite.ts
+++ b/src/server/api/endpoints/users/groups/invite.ts
@@ -3,9 +3,10 @@ import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { getUser } from '../../../common/getters';
-import { UserGroups, UserGroupJoinings, UserGroupInvites } from '../../../../../models';
+import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
-import { UserGroupInvite } from '../../../../../models/entities/user-group-invite';
+import { UserGroupInvitation } from '../../../../../models/entities/user-group-invitation';
+import { createNotification } from '../../../../../services/create-notification';
export const meta = {
desc: {
@@ -86,19 +87,24 @@ export default define(meta, async (ps, me) => {
throw new ApiError(meta.errors.alreadyAdded);
}
- const invite = await UserGroupInvites.findOne({
+ const existInvitation = await UserGroupInvitations.findOne({
userGroupId: userGroup.id,
userId: user.id
});
- if (invite) {
+ if (existInvitation) {
throw new ApiError(meta.errors.alreadyInvited);
}
- await UserGroupInvites.save({
+ const invitation = await UserGroupInvitations.save({
id: genId(),
createdAt: new Date(),
userId: user.id,
userGroupId: userGroup.id
- } as UserGroupInvite);
+ } as UserGroupInvitation);
+
+ // 通知を作成
+ createNotification(user.id, me.id, 'groupInvited', {
+ userGroupInvitationId: invitation.id
+ });
});