Skip to content

Commit aca030c

Browse files
author
Vikas Agarwal
committed
Creating default topic for phase when phase is created via new project
Fixed data type for template id when indexing in ES
1 parent 9c02135 commit aca030c

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

src/events/projectPhases/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,5 @@ module.exports = {
191191
projectPhaseAddedHandler,
192192
projectPhaseRemovedHandler,
193193
projectPhaseUpdatedHandler,
194+
createPhaseTopic,
194195
};

src/events/projects/index.js

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@ import _ from 'lodash';
55
import Promise from 'bluebird';
66
import config from 'config';
77
import util from '../../util';
8+
import { createPhaseTopic } from '../projectPhases';
89

910
const ES_PROJECT_INDEX = config.get('elasticsearchConfig.indexName');
1011
const ES_PROJECT_TYPE = config.get('elasticsearchConfig.docType');
1112
const eClient = util.getElasticSearchClient();
1213

13-
/**
14-
* Handler for project creation event
15-
* @param {Object} logger logger to log along with trace id
16-
* @param {Object} msg event payload
17-
* @param {Object} channel channel to ack, nack
18-
* @returns {undefined}
19-
*/
20-
const projectCreatedHandler = Promise.coroutine(function* (logger, msg, channel) { // eslint-disable-line func-names
14+
15+
16+
17+
const indexProject = Promise.coroutine(function* (logger, msg) {
2118
const data = JSON.parse(msg.content.toString());
2219
const userIds = data.members ? data.members.map(single => `userId:${single.userId}`) : [];
2320
try {
@@ -42,9 +39,26 @@ const projectCreatedHandler = Promise.coroutine(function* (logger, msg, channel)
4239
body: data,
4340
});
4441
logger.debug(`project indexed successfully (projectId: ${data.id})`, result);
45-
channel.ack(msg);
4642
return undefined;
4743
} catch (error) {
44+
logger.error(`Error indexing project (projectId: ${data.id})`, error);
45+
throw error;
46+
}
47+
});
48+
49+
/**
50+
* Handler for project creation event
51+
* @param {Object} logger logger to log along with trace id
52+
* @param {Object} msg event payload
53+
* @param {Object} channel channel to ack, nack
54+
* @returns {undefined}
55+
*/
56+
const projectCreatedHandler = Promise.coroutine(function* (logger, msg, channel) { // eslint-disable-line func-names
57+
try {
58+
indexProject(logger, msg);
59+
createPhaseTopic(logger, msg);
60+
channel.ack(msg);
61+
} catch(error) {
4862
logger.error(`Error processing event (projectId: ${data.id})`, error);
4963
channel.nack(msg, false, !msg.fields.redelivered);
5064
return undefined;

src/routes/projects/create.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ function createProjectAndPhases(req, project, projectTemplate) {
115115
_.assign(_.omit(product, ['id', 'productKey']), {
116116
phaseId: newPhase.id,
117117
projectId: newProject.id,
118-
templateId: product.id,
118+
templateId: Integer.parseInt(product.id),
119119
updatedBy: req.authUser.userId,
120120
createdBy: req.authUser.userId,
121121
})), { returning: true })

0 commit comments

Comments
 (0)