diff --git a/services/IssueService.js b/services/IssueService.js index 80ee793..4dc14f8 100755 --- a/services/IssueService.js +++ b/services/IssueService.js @@ -63,6 +63,11 @@ function parsePrizes(issue) { * @private */ async function ensureChallengeExists(event, issue, create = true) { + logger.debug('Enter ensureChallengeExists to scan an issue record'); + logger.debug(`Enter ensureChallengeExists. Number: ${issue.number}`); + logger.debug(`Enter ensureChallengeExists. provider: ${issue.provider}`); + logger.debug(`Enter ensureChallengeExists. repositoryId: ${issue.repositoryId}`); + let dbIssue = await dbHelper.scanOne(models.Issue, { number: issue.number, provider: issue.provider, @@ -70,6 +75,7 @@ async function ensureChallengeExists(event, issue, create = true) { }); if (dbIssue && dbIssue.status === 'challenge_creation_pending') { + logger.debug('dbIssue is PENDING'); throw errors.internalDependencyError(`Challenge for the updated issue ${issue.number} is creating, rescheduling this event`); } if (dbIssue && dbIssue.status === 'challenge_creation_failed') { @@ -83,12 +89,15 @@ async function ensureChallengeExists(event, issue, create = true) { } if (!dbIssue && create) { + logger.debug('dbIssue is NULL, process to create new record and challenge'); + await handleIssueCreate(event, issue); dbIssue = await dbHelper.scanOne(models.Issue, { number: issue.number, provider: issue.provider, repositoryId: issue.repositoryId }); + logger.debug(`dbIssue is CREATED ${dbIssue ? 'Succesfully' : 'Failed'}`); } return dbIssue; } diff --git a/utils/db-helper.js b/utils/db-helper.js index 05e09fe..4c7eb3a 100644 --- a/utils/db-helper.js +++ b/utils/db-helper.js @@ -2,6 +2,7 @@ * Copyright (c) 2018 TopCoder, Inc. All rights reserved. */ 'use strict'; +const logger = require('./logger'); /** * This module contains the database helper methods. @@ -52,11 +53,16 @@ async function scan(model, scanParams) { * @returns {Promise} */ async function scanOne(model, scanParams) { + logger.debug('Enter scanOne.'); + return await new Promise((resolve, reject) => { model.scan(scanParams).exec((err, result) => { if (err) { + logger.debug(`scanOne. Error. ${err}`); reject(err); } + logger.debug(`scanOne. Result.`); + logger.debug(result); return resolve(result.count === 0 ? null : result[0]); }); diff --git a/utils/kafka.js b/utils/kafka.js index 60f477a..d70189b 100644 --- a/utils/kafka.js +++ b/utils/kafka.js @@ -21,7 +21,7 @@ const logger = require('./logger'); class Kafka { constructor() { - this.consumer = new kafka.GroupConsumer(config.KAFKA_OPTIONS); + this.consumer = new kafka.SimpleConsumer(config.KAFKA_OPTIONS); this.producer = new kafka.Producer(config.KAFKA_OPTIONS); this.producer.init().then(() => { @@ -77,12 +77,10 @@ class Kafka { } run() { - this.consumer.init([{ - subscriptions: [config.TOPIC], - handler: this.messageHandler - }]).then(() => { + this.consumer.init().then(() => { logger.info('kafka consumer is ready'); healthcheck.init([this.check]); + this.consumer.subscribe(config.TOPIC, {}, this.messageHandler); }).catch((err) => { logger.error(`kafka consumer is not connected. ${err.stack}`); });