|
2 | 2 | * Copyright (c) 2018 TopCoder, Inc. All rights reserved. |
3 | 3 | */ |
4 | 4 | 'use strict'; |
| 5 | +const models = require('../models'); |
5 | 6 | const logger = require('./logger'); |
6 | 7 |
|
7 | 8 | /** |
@@ -81,16 +82,16 @@ async function queryOneIssue(model, repositoryId, number, provider) { |
81 | 82 | */ |
82 | 83 | async function queryOneActiveProject(model, repoUrl) { |
83 | 84 | return await new Promise((resolve, reject) => { |
84 | | - model.scan('repoUrls').contains(repoUrl) |
85 | | - .filter('archived') |
86 | | - .eq('false') |
87 | | - .all() |
88 | | - .exec((err, result) => { |
89 | | - if (err || !result) { |
90 | | - logger.debug(`queryOneActiveProject. Error. ${err}`); |
91 | | - return reject(err); |
92 | | - } |
93 | | - return resolve(result.count === 0 ? null : result[0]); |
| 85 | + queryOneActiveRepository(models.Repository, repoUrl).then((repo) => { |
| 86 | + if (!repo) resolve(null); |
| 87 | + else model.queryOne('id').eq(repo.projectId).consistent() |
| 88 | + .exec((err, result) => { |
| 89 | + if (err) { |
| 90 | + logger.debug(`queryOneActiveProject. Error. ${err}`); |
| 91 | + return reject(err); |
| 92 | + } |
| 93 | + return resolve(result); |
| 94 | + }); |
94 | 95 | }); |
95 | 96 | }); |
96 | 97 | } |
@@ -319,13 +320,36 @@ async function removeIssue(Model, repositoryId, number, provider) { |
319 | 320 | }); |
320 | 321 | } |
321 | 322 |
|
| 323 | +/** |
| 324 | + * Query one active repository |
| 325 | + * @param {Object} model the dynamoose model |
| 326 | + * @param {String} url the repository url |
| 327 | + * @returns {Promise<Object>} |
| 328 | + */ |
| 329 | +async function queryOneActiveRepository(model, url) { |
| 330 | + return await new Promise((resolve, reject) => { |
| 331 | + model.queryOne({ |
| 332 | + url, |
| 333 | + archived: 'false' |
| 334 | + }) |
| 335 | + .all() |
| 336 | + .exec((err, result) => { |
| 337 | + if (err) { |
| 338 | + return reject(err); |
| 339 | + } |
| 340 | + return resolve(result); |
| 341 | + }); |
| 342 | + }); |
| 343 | +} |
| 344 | + |
322 | 345 | module.exports = { |
323 | 346 | getById, |
324 | 347 | scan, |
325 | 348 | updateMany, |
326 | 349 | create, |
327 | 350 | update, |
328 | 351 | queryOneActiveProject, |
| 352 | + queryOneActiveRepository, |
329 | 353 | queryOneIssue, |
330 | 354 | queryOneUserByType, |
331 | 355 | queryOneUserMappingByGithubUserId, |
|
0 commit comments