async _getLastSignatureOnMultiDates()

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
    }