Skip to content

Commit 39541c4

Browse files
committed
send email event for email invites
1 parent 031a600 commit 39541c4

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

config/default.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,8 @@
5151
"AUTH0_URL": "",
5252
"TOKEN_CACHE_TIME": "",
5353
"whitelistedOriginsForUserIdAuth": "[\"https:\/\/topcoder-newauth.auth0.com\/\",\"https:\/\/api.topcoder-dev.com\"]",
54-
"AUTH0_PROXY_SERVER_URL" : ""
54+
"AUTH0_PROXY_SERVER_URL" : "",
55+
"EMAIL_INVITE_FROM_NAME":"Topcoder Connect",
56+
"EMAIL_INVITE_FROM_EMAIL":"noreply@connect.topcoder.com"
57+
5558
}

src/constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ export const BUS_API_EVENT = {
131131
// Project Member Invites
132132
PROJECT_MEMBER_INVITE_CREATED: 'notifications.connect.project.member.invite.created',
133133
PROJECT_MEMBER_INVITE_UPDATED: 'notifications.connect.project.member.invite.updated',
134+
PROJECT_MEMBER_EMAIL_INVITE_CREATED: 'connect.action.project.membet.invite.created',
134135
};
135136

136137
export const REGEX = {

src/routes/projectMemberInvites/create.js

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import validate from 'express-validation';
44
import _ from 'lodash';
55
import Joi from 'joi';
6+
import config from 'config';
67
import { middleware as tcMiddleware } from 'tc-core-library-js';
78
import models from '../../models';
89
import util from '../../util';
910
import { PROJECT_MEMBER_ROLE, PROJECT_MEMBER_MANAGER_ROLES,
10-
MANAGER_ROLES, INVITE_STATUS, EVENT } from '../../constants';
11+
MANAGER_ROLES, INVITE_STATUS, EVENT, PROJECT_MEMBER_EMAIL_INVITE_CREATED } from '../../constants';
12+
import { createEvent } from '../../services/busApi';
13+
1114

1215
/**
1316
* API to create member invite to project.
@@ -140,8 +143,33 @@ module.exports = [
140143
v,
141144
{ correlationId: req.id },
142145
);
146+
// send email invite (async)
147+
if (v.email) {
148+
models.Project
149+
.find({
150+
where: { id: projectId },
151+
raw: true,
152+
})
153+
.then((_project) => {
154+
createEvent(PROJECT_MEMBER_EMAIL_INVITE_CREATED,
155+
{
156+
data: {
157+
date: (new Date()).toISOString(),
158+
projectName: _project.name,
159+
projectId,
160+
},
161+
recipients: [v.email],
162+
version: 'v3',
163+
from: {
164+
name: config.get('EMAIL_INVITE_FROM_NAME'),
165+
email: config.get('EMAIL_INVITE_FROM_EMAIL'),
166+
},
167+
categories: [PROJECT_MEMBER_EMAIL_INVITE_CREATED],
168+
}, req.log);
169+
});
170+
}
171+
return res.status(201).json(util.wrapResponse(req.id, values, null, 201));
143172
});
144-
return res.status(201).json(util.wrapResponse(req.id, values, null, 201));
145173
});
146174
});
147175
}).catch(err => next(err));

0 commit comments

Comments
 (0)