@ -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);
|
||||
});
|
||||
|
@ -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);
|
||||
});
|
||||
|
@ -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);
|
||||
});
|
||||
|
@ -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
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user