in src/server/services/cla.js [566:618]
async getSignedCLA(args) {
const selector = []
const findCla = async function (query, repoList, claList) {
const clas = await CLA.find(query, {
'repo': '*',
'owner': '*',
'created_at': '*',
'gist_url': '*',
'gist_version': '*'
}, {
sort: {
'created_at': -1
}
})
clas.forEach((cla) => {
if (repoList.indexOf(cla.repo) < 0) {
repoList.push(cla.repo)
claList.push(cla)
}
})
}
try {
const repos = await repoService.all()
repos.forEach((repo) => {
selector.push({
user: args.user,
repo: repo.repo,
gist_url: repo.gist
})
})
} catch (error) {
logger.warn(new Error(error).stack)
}
const repoList = []
const uniqueClaList = []
try {
await findCla({
$or: selector
}, repoList, uniqueClaList)
} catch (error) {
logger.warn(new Error(error).stack)
}
try {
await findCla({
user: args.user
}, repoList, uniqueClaList)
} catch (error) {
logger.warn(new Error(error).stack)
}
return uniqueClaList
}