From db826374cbf7935e99a263cd418fa23d9cb70dc8 Mon Sep 17 00:00:00 2001 From: Aitik Gupta Date: Wed, 24 Feb 2021 02:35:50 +0530 Subject: [PATCH 1/2] ENH: Add mutations for Projects --- webviews/components/queries.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/webviews/components/queries.js b/webviews/components/queries.js index 89cf96f..49727aa 100644 --- a/webviews/components/queries.js +++ b/webviews/components/queries.js @@ -71,6 +71,30 @@ export const EDIT_COLUMN = gql` } `; +export const ADD_PROJECT = gql` + mutation ADD_PROJECT($body: String, $name: String!, $ownerId: ID!, $repositoryIds: [ID!], $template: ProjectTemplate) { + createProject(input : { body: $body, name: $name, ownerId: $ownerId, repositoryIds: $repositoryIds, template: $template }) { + clientMutationId + } + } + `; + +export const CLOSE_PROJECT = gql` + mutation CLOSE_PROJECT($projectId: ID!) { + createProject(input : { projectId: $projectId }) { + clientMutationId + } + } + `; + +export const EDIT_PROJECT = gql` + mutation EDIT_PROJECT($body: String, $name: String, $projectId: ID!, $public: Boolean, $state: ProjectState) { + createProject(input : { $body: body, name: $name, projectId: $projectId, public: $public, state: $state }) { + clientMutationId + } + } + `; + export const GET_REPO_PROJECT_INFO = gql` query GetRepoProjectInfo($name: String!, $owner: String!, $number: Int!) { repository(name: $name, owner: $owner) { From 7d517886aa49dfe28aff26e4e6c3ed7269899f7d Mon Sep 17 00:00:00 2001 From: Aitik Gupta Date: Wed, 24 Feb 2021 02:36:11 +0530 Subject: [PATCH 2/2] ENH: Integrate Projects with untested middleware --- webviews/components/ProjectInfo.svelte | 31 +++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/webviews/components/ProjectInfo.svelte b/webviews/components/ProjectInfo.svelte index 812f5f1..babe6ed 100644 --- a/webviews/components/ProjectInfo.svelte +++ b/webviews/components/ProjectInfo.svelte @@ -140,19 +140,44 @@ } } + // types of projects + const projectType = { 1: "AUTOMATED_KANBAN_V2", 2: "AUTOMATED_REVIEWS_KANBAN", 3: "BASIC_KANBAN", 4: "BUG_TRIAGE"}; + // types of states + const projectState = { 0: "CLOSED", 1: "OPEN"}; async function handleProjectMutations(project, request, payload) { try { switch (request) { case "addProject": - addProject(payload); + repositories = payload.repositories; + let repoIds = repositories.forEach((repo) => { + repo.id + }); + addProject({ variables: { body: payload.body, name: payload.name, ownerId: project.owner.id, repositoryIds: repoIds, template: projectType[payload.projectType] }}); break; case "closeProject": - closeProject(project); + closeProject({ variables: { projectId: project.id }}); break; case "editProject": - editProject(project, payload); + const body = payload.body; + const name = payload.name; + const visibility = payload.visibility; + const state = projectState[payload.state]; + + if(!body) { + body = project.body; + } + if(!name) { + name = project.name; + } + if(!visibility) { + visibility = project.public; + } + if(!state) { + state = project.state; + } + editProject({ variables: { body: body, name: name, projectId: project.id, public: visibility, state: state }}); break; default: