import axios from '~/lib/utils/axios_utils'; import getAppStatus from './queries/client/app_status.graphql'; import getCurrentBranchQuery from './queries/client/current_branch.graphql'; import getLastCommitBranchQuery from './queries/client/last_commit_branch.query.graphql'; import getPipelineEtag from './queries/client/pipeline_etag.graphql'; export const resolvers = { Mutation: { lintCI: (_, { endpoint, content, dry_run }) => { return axios.post(endpoint, { content, dry_run }).then(({ data }) => ({ valid: data.valid, errors: data.errors, warnings: data.warnings, jobs: data.jobs.map((job) => { const only = job.only ? { refs: job.only.refs, __typename: 'CiLintJobOnlyPolicy' } : null; return { name: job.name, stage: job.stage, beforeScript: job.before_script, script: job.script, afterScript: job.after_script, tags: job.tag_list, environment: job.environment, when: job.when, allowFailure: job.allow_failure, only, except: job.except, __typename: 'CiLintJob', }; }), __typename: 'CiLintContent', })); }, updateAppStatus: (_, { appStatus }, { cache }) => { cache.writeQuery({ query: getAppStatus, data: { appStatus }, }); }, updateCurrentBranch: (_, { currentBranch }, { cache }) => { cache.writeQuery({ query: getCurrentBranchQuery, data: { currentBranch }, }); }, updateLastCommitBranch: (_, { lastCommitBranch }, { cache }) => { cache.writeQuery({ query: getLastCommitBranchQuery, data: { lastCommitBranch }, }); }, updatePipelineEtag: (_, { pipelineEtag }, { cache }) => { cache.writeQuery({ query: getPipelineEtag, data: { pipelineEtag }, }); }, }, };