|
@ -367,6 +367,8 @@ class ChatService extends SiteService { |
|
|
|
|
|
|
|
|
room.owner.type = room.ownerType; |
|
|
room.owner.type = room.ownerType; |
|
|
const event = { |
|
|
const event = { |
|
|
|
|
|
recipientType: member.type, |
|
|
|
|
|
recipient: member._id, |
|
|
action: 'room-invite-create', |
|
|
action: 'room-invite-create', |
|
|
emitter: room.owner, |
|
|
emitter: room.owner, |
|
|
label: 'Chat Room Invitation', |
|
|
label: 'Chat Room Invitation', |
|
@ -396,6 +398,19 @@ class ChatService extends SiteService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
async acceptRoomInvite (invite) { |
|
|
async acceptRoomInvite (invite) { |
|
|
|
|
|
if ((invite.status === 'accepted') || |
|
|
|
|
|
(invite.room.members.find((member) => member.member._id.equals(invite.member._id)))) { |
|
|
|
|
|
throw SiteError(400, "You have already accepted membership in this room."); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.log.debug('updating chat invite', { inviteId: invite._id, status: 'accepted' }); |
|
|
|
|
|
await ChatRoomInvite.updateOne( |
|
|
|
|
|
{ _id: invite._id }, |
|
|
|
|
|
{ |
|
|
|
|
|
$set: { status: 'accepted' }, |
|
|
|
|
|
}, |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
this.log.info('accepting invite to chat room', { |
|
|
this.log.info('accepting invite to chat room', { |
|
|
roomId: invite.room._id, |
|
|
roomId: invite.room._id, |
|
|
memberId: invite.member._id, |
|
|
memberId: invite.member._id, |
|
@ -403,7 +418,7 @@ class ChatService extends SiteService { |
|
|
await ChatRoom.updateOne( |
|
|
await ChatRoom.updateOne( |
|
|
{ _id: invite.room._id }, |
|
|
{ _id: invite.room._id }, |
|
|
{ |
|
|
{ |
|
|
$addToSet: { |
|
|
$push: { |
|
|
members: { |
|
|
members: { |
|
|
memberType: invite.memberType, |
|
|
memberType: invite.memberType, |
|
|
member: invite.member._id, |
|
|
member: invite.member._id, |
|
@ -411,14 +426,6 @@ class ChatService extends SiteService { |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
this.log.info('updating chat invite', { inviteId: invite._id, status: 'accepted' }); |
|
|
|
|
|
await ChatRoomInvite.updateOne( |
|
|
|
|
|
{ _id: invite._id }, |
|
|
|
|
|
{ |
|
|
|
|
|
$set: { status: 'accepted' }, |
|
|
|
|
|
}, |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
async rejectRoomInvite (invite) { |
|
|
async rejectRoomInvite (invite) { |
|
|