Skip to content

Commit f14b8eb

Browse files
author
Parth Shah
committed
fixes for project member events
1 parent e04344c commit f14b8eb

File tree

5 files changed

+26
-41
lines changed

5 files changed

+26
-41
lines changed

src/constants.js

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11

2+
import _ from 'lodash'
23
export const PROJECT_TYPE = {
34
APP_DEV : 'app_dev',
45
GENERIC : 'generic',
@@ -30,26 +31,16 @@ export const USER_ROLE = {
3031

3132

3233
export const EVENT = {
33-
INTERNAL: {
34-
PROJECT_MEMBER_ADDED: 'internal.project.member.added',
35-
PROJECT_MEMBER_REMOVED: 'internal.project.member.removed',
36-
37-
PROJECT_DRAFT_CREATED: 'internal.project.draft-created',
38-
PROJECT_LAUNCHED: 'internal.project.launched',
39-
PROJECT_UPDATED: 'internal.project.updated',
40-
PROJECT_CANCELLED: 'internal.project.cancelled',
41-
PROJECT_COMPLETED: 'internal.project.completed'
42-
},
43-
44-
EXTERNAL: {
45-
PROJECT_MEMBER_ADDED: 'external.project.member.added',
46-
PROJECT_MEMBER_REMOVED: 'external.project.member.removed',
47-
48-
PROJECT_DRAFT_CREATED: 'external.project.draft-created',
49-
PROJECT_LAUNCHED: 'external.project.launched',
50-
PROJECT_UPDATED: 'external.project.updated',
51-
PROJECT_CANCELLED: 'external.project.cancelled',
52-
PROJECT_COMPLETED: 'external.project.completed'
53-
},
54-
34+
ROUTING_KEY: {
35+
PROJECT_MEMBER_ADDED: 'project.member.added',
36+
PROJECT_MEMBER_REMOVED: 'project.member.removed',
37+
38+
PROJECT_DRAFT_CREATED: 'project.draft-created',
39+
PROJECT_LAUNCHED: 'project.launched',
40+
PROJECT_UPDATED: 'project.updated',
41+
PROJECT_CANCELLED: 'project.cancelled',
42+
PROJECT_COMPLETED: 'project.completed'
43+
}
5544
}
45+
EVENT.INTERNAL = _.mapValues(EVENT.ROUTING_KEY, (a) => { return `internal.${a}` })
46+
EVENT.EXTERNAL = _.mapValues(EVENT.ROUTING_KEY, (a) => { return `external.${a}` })

src/events/projectMembers/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = (app, logger) => {
1717
// Publish messages to the queue
1818
_.map(internalEvents, (evt) => {
1919
app.on(evt, (member) => {
20-
logger.debug('handling ' + evt)
20+
logger.debug('handling ', evt)
2121
let key = evt.substring(evt.indexOf('.') + 1)
2222
return app.services.pubsub.publish(key, member)
2323
})

src/events/projects/create.event.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,14 @@ const addProjectStatus = (req, logger, project) => {
6464
with specification, verify it against our checklist and upload it.</p>`
6565
}
6666
]
67-
let postPromises = []
68-
_.forEach(topics, t => {
69-
postPromises.push(topicService.createTopic(req, project.id, t.title, t.body))
70-
})
71-
72-
return Promise.all(postPromises)
73-
.then(val => console.log(val))
67+
// NOTE: running these in sequence cos we want topic[0] to be created first
68+
// firing these events in parallel doesn't ensure that topic[0] is created first
69+
return topicService.createTopic(req, project.id, topics[0].title, topics[0].body)
70+
.then(() => topicService.createTopic(req, project.id, topics[1].title, topics[1].body))
71+
.then(() => {
72+
logger.debug('post-project creation messages posted')
73+
return true
74+
})
7475
}
7576

7677

src/routes/projectMembers/delete.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ module.exports = [
3535
return member.save()
3636
})
3737
.then(member => {
38-
console.log('deleted row', JSON.stringify(member, null, 2))
3938
// fire event
40-
req.app.emit(EVENT.INTERNAL.PROJECT_MEMBER_REMOVED, member)
39+
req.app.emit(EVENT.INTERNAL.PROJECT_MEMBER_REMOVED, member.get({plain:true}))
4140
res.status(204).json({})
4241
})
4342
.catch(err => next(err))

src/services/rabbitmq.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@
22
/* globals Promise */
33
import _ from 'lodash'
44
import events from 'events'
5+
import { EVENT } from '../constants'
6+
57
const EventEmitter = events.EventEmitter
68

7-
const ROUTING_KEYS = [
8-
'project.draft-created',
9-
'project.launched',
10-
'project.updated',
11-
'project.cancelled',
12-
'project.completed',
13-
'project.member.registered',
14-
'project.member.unregistered',
15-
]
9+
const ROUTING_KEYS = _.values(EVENT.ROUTING_KEY)
1610

1711
module.exports = class RabbitMQService extends EventEmitter{
1812

0 commit comments

Comments
 (0)