async getSignedCLA()

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
    }