in src/server/services/cla.js [246:280]
async _getLastSignatureOnMultiDates(user, userId, repoId, orgId, sharedGist = false, gist_url, gist_version, date) {
if ((!user && !userId) || (!repoId && !orgId) || !gist_url || (date && !Array.isArray(date))) {
const msg = `Not enough arguments provided for getLastSignatureOnMultiDates() ${user} ${userId} ${repoId} ${orgId} ${sharedGist} ${gist_url} ${gist_version} ${date}`
logger.error(msg)
throw new Error(msg)
}
let query = {
gist_url: gist_url,
org_cla: !!orgId
}
if (repoId) {
query.repoId = repoId
}
if (orgId) {
query.ownerId = orgId
}
if (gist_version) {
query.gist_version = gist_version
}
query.userId = userId
query.user = user
query = this._updateQuery(query, sharedGist, date)
let cla = await CLA.findOne(query, {}, {
sort: {
'created_at': -1
}
})
if (cla && cla.user !== user) {
cla.user = user
await cla.save()
}
return cla
}