This commit is contained in:
Tom Moor
2019-12-22 14:54:12 -08:00
committed by GitHub
parent adf323713e
commit 6bf2069fa7
8 changed files with 52 additions and 11 deletions

View File

@@ -246,10 +246,13 @@ router.post('users.invite', auth(), async ctx => {
const user = ctx.state.user;
authorize(user, 'invite', User);
const invitesSent = await userInviter({ user, invites, ip: ctx.request.ip });
const response = await userInviter({ user, invites, ip: ctx.request.ip });
ctx.body = {
data: invitesSent,
data: {
sent: response.sent,
users: response.users.map(user => presentUser(user)),
},
};
});

View File

@@ -14,7 +14,7 @@ export default async function userInviter({
user: User,
invites: Invite[],
ip: string,
}): Promise<{ sent: Invite[] }> {
}): Promise<{ sent: Invite[], users: User[] }> {
const team = await Team.findByPk(user.teamId);
// filter out empties and obvious non-emails
@@ -44,12 +44,14 @@ export default async function userInviter({
invite => !existingEmails.includes(invite.email)
);
let users = [];
// send and record remaining invites
await Promise.all(
filteredInvites.map(async invite => {
const transaction = await sequelize.transaction();
try {
await User.create(
const newUser = await User.create(
{
teamId: user.teamId,
name: invite.name,
@@ -58,6 +60,7 @@ export default async function userInviter({
},
{ transaction }
);
users.push(newUser);
await Event.create(
{
name: 'users.invite',
@@ -88,5 +91,5 @@ export default async function userInviter({
})
);
return { sent: filteredInvites };
return { sent: filteredInvites, users };
}