Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 1a222ba

Browse files
committed
Fetch issue with queryone.
1 parent 1e6fee9 commit 1a222ba

File tree

2 files changed

+49
-16
lines changed

2 files changed

+49
-16
lines changed

src/common/db-helper.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const _ = require('lodash');
12
const logger = require('./logger');
23

34
/*
@@ -47,6 +48,36 @@ async function scan(model, scanParams) {
4748
});
4849
}
4950

51+
/**
52+
* Get single data by query parameters
53+
* @param {Object} model The dynamoose model to query
54+
* @param {Object} params The parameters object
55+
* @returns {Promise<void>}
56+
*/
57+
async function queryOne(model, params) {
58+
logger.debug('Enter queryOne.');
59+
60+
return await new Promise((resolve, reject) => {
61+
const queryParams = {};
62+
63+
_.forOwn(params, (value, key) => {
64+
queryParams[key] = {eq: value};
65+
});
66+
67+
logger.debug(`${JSON.stringify(queryParams)}`);
68+
model.queryOne(queryParams).exec((err, result) => {
69+
if (err) {
70+
logger.debug(`queryOne. Error. ${err}`);
71+
return reject(err);
72+
}
73+
logger.debug('queryOne. Result.');
74+
logger.debug(result);
75+
76+
return resolve(result);
77+
});
78+
});
79+
}
80+
5081
/**
5182
* Get single data by scan parameters
5283
* @param {Object} model The dynamoose model to scan
@@ -136,4 +167,5 @@ module.exports = {
136167
create,
137168
update,
138169
remove,
170+
queryOne
139171
};

src/services/IssueService.js

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -238,22 +238,6 @@ async function recreate(issue, currentUser) {
238238
},
239239
};
240240

241-
const dbIssue = await dbHelper.scanOne(models.Issue, {
242-
number: issueNumber,
243-
projectId: issue.projectId
244-
});
245-
246-
if (!issue.recreate) {
247-
if (dbIssue) dbIssue.delete();
248-
return {
249-
success: true
250-
};
251-
}
252-
253-
if (!dbIssue) {
254-
createEvent.event = 'issue.created';
255-
}
256-
257241
const labels = [];
258242

259243
if (provider === 'github') {
@@ -315,6 +299,23 @@ async function recreate(issue, currentUser) {
315299
}
316300
}
317301

302+
const dbIssue = await dbHelper.scanOne(models.Issue, {
303+
number: issueNumber,
304+
provider,
305+
repositoryId: createEvent.data.repository.id
306+
});
307+
308+
if (!issue.recreate) {
309+
if (dbIssue) dbIssue.delete();
310+
return {
311+
success: true
312+
};
313+
}
314+
315+
if (!dbIssue) {
316+
createEvent.event = 'issue.created';
317+
}
318+
318319
if (labels.length > 0) {
319320
createEvent.data.issue.labels = labels;
320321
}

0 commit comments

Comments
 (0)