@@ -5,19 +5,16 @@ import _ from 'lodash';
5
5
import Promise from 'bluebird' ;
6
6
import config from 'config' ;
7
7
import util from '../../util' ;
8
+ import { createPhaseTopic } from '../projectPhases' ;
8
9
9
10
const ES_PROJECT_INDEX = config . get ( 'elasticsearchConfig.indexName' ) ;
10
11
const ES_PROJECT_TYPE = config . get ( 'elasticsearchConfig.docType' ) ;
11
12
const eClient = util . getElasticSearchClient ( ) ;
12
13
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 ) {
21
18
const data = JSON . parse ( msg . content . toString ( ) ) ;
22
19
const userIds = data . members ? data . members . map ( single => `userId:${ single . userId } ` ) : [ ] ;
23
20
try {
@@ -42,9 +39,26 @@ const projectCreatedHandler = Promise.coroutine(function* (logger, msg, channel)
42
39
body : data ,
43
40
} ) ;
44
41
logger . debug ( `project indexed successfully (projectId: ${ data . id } )` , result ) ;
45
- channel . ack ( msg ) ;
46
42
return undefined ;
47
43
} 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 ) {
48
62
logger . error ( `Error processing event (projectId: ${ data . id } )` , error ) ;
49
63
channel . nack ( msg , false , ! msg . fields . redelivered ) ;
50
64
return undefined ;
0 commit comments