diff --git a/src/common/db-helper.js b/src/common/db-helper.js index 2b1d374..bc437d4 100644 --- a/src/common/db-helper.js +++ b/src/common/db-helper.js @@ -1,4 +1,3 @@ -const _ = require('lodash'); const logger = require('./logger'); /* @@ -51,21 +50,24 @@ async function scan(model, scanParams) { /** * Get single data by query parameters * @param {Object} model The dynamoose model to query - * @param {Object} params The parameters object + * @param {String} repositoryId The repository id to query + * @param {Number} number The number id to query + * @param {String} provider The provider id to query * @returns {Promise} */ -async function queryOne(model, params) { +async function queryOneIssue(model, repositoryId, number, provider) { logger.debug('Enter queryOne.'); return await new Promise((resolve, reject) => { - const queryParams = {}; - _.forOwn(params, (value, key) => { - queryParams[key] = {eq: value}; - }); - - logger.debug(`${JSON.stringify(queryParams)}`); - model.queryOne(queryParams).exec((err, result) => { + logger.debug(`repositoryId : ${repositoryId}`); + logger.debug(`number : ${number}`); + logger.debug(`provider : ${provider}`); + model.query('repositoryId').eq(repositoryId) + .filter('number').eq(number) + .filter('provider').eq(provider) + .all() + .exec((err, result) => { if (err) { logger.debug(`queryOne. Error. ${err}`); return reject(err); @@ -73,7 +75,7 @@ async function queryOne(model, params) { logger.debug('queryOne. Result.'); logger.debug(result); - return resolve(result); + return resolve(result.count === 0 ? null : result[0]); }); }); } @@ -167,5 +169,5 @@ module.exports = { create, update, remove, - queryOne + queryOneIssue }; diff --git a/src/services/IssueService.js b/src/services/IssueService.js index bba93ff..f6c1223 100644 --- a/src/services/IssueService.js +++ b/src/services/IssueService.js @@ -299,11 +299,10 @@ async function recreate(issue, currentUser) { } } - const dbIssue = await dbHelper.scanOne(models.Issue, { - number: issueNumber, - provider, - repositoryId: createEvent.data.repository.id - }); + const dbIssue = await dbHelper.queryOneIssue(models.Issue, + createEvent.data.repository.id, + issueNumber, + provider); if (!issue.recreate) { if (dbIssue) dbIssue.delete();