forked from cerc-io/snowballtools-base
Implement functionality to update project member permissions in settings (#56)
* Add mutation to update permissions of project member * Use update project member permission client method in UI * Handle review changes --------- Co-authored-by: neeraj <neeraj.rtly@gmail.com>
This commit is contained in:
committed by
Ashwin Phatak
co-authored by
neeraj
parent
b5e7554c26
commit
ace27c7eae
@@ -1,8 +1,8 @@
|
||||
import { ApolloClient, DefaultOptions, InMemoryCache, NormalizedCacheObject } from '@apollo/client';
|
||||
|
||||
import { getUser, getOrganizations, getDeployments, getProjectMembers, searchProjects, getEnvironmentVariables, getProject, getDomains, getProjectsInOrganization } from './queries';
|
||||
import { AddEnvironmentVariableInput, AddEnvironmentVariablesResponse, GetDeploymentsResponse, GetEnvironmentVariablesResponse, GetOrganizationsResponse, GetProjectMembersResponse, SearchProjectsResponse, GetUserResponse, RemoveMemberResponse, UpdateDeploymentToProdResponse, GetProjectResponse, UpdateProjectResponse, UpdateProjectInput, RedeployToProdResponse, DeleteProjectResponse, GetProjectsInOrganizationResponse, RollbackDeploymentResponse, AddDomainInput, AddDomainResponse, GetDomainsResponse, UpdateDomainInput, UpdateDomainResponse, AuthenticateGithubResponse, UpdateEnvironmentVariableResponse, UpdateEnvironmentVariableInput, RemoveEnvironmentVariableResponse } from './types';
|
||||
import { removeMember, addEnvironmentVariables, updateDeploymentToProd, updateProjectMutation, redeployToProd, deleteProject, addDomain, rollbackDeployment, updateDomainMutation, authenticateGithub, updateEnvironmentVariable, removeEnvironmentVariable } from './mutations';
|
||||
import { AddEnvironmentVariableInput, AddEnvironmentVariablesResponse, GetDeploymentsResponse, GetEnvironmentVariablesResponse, GetOrganizationsResponse, GetProjectMembersResponse, SearchProjectsResponse, GetUserResponse, UpdateDeploymentToProdResponse, GetProjectResponse, UpdateProjectResponse, UpdateProjectInput, RedeployToProdResponse, DeleteProjectResponse, GetProjectsInOrganizationResponse, RollbackDeploymentResponse, AddDomainInput, AddDomainResponse, GetDomainsResponse, UpdateDomainInput, UpdateDomainResponse, AuthenticateGithubResponse, UpdateEnvironmentVariableResponse, UpdateEnvironmentVariableInput, RemoveEnvironmentVariableResponse, UpdateProjectMemberInput, RemoveProjectMemberResponse, UpdateProjectMemberResponse } from './types';
|
||||
import { removeProjectMember, addEnvironmentVariables, updateDeploymentToProd, updateProjectMutation, redeployToProd, deleteProject, addDomain, rollbackDeployment, updateDomainMutation, authenticateGithub, updateEnvironmentVariable, removeEnvironmentVariable, updateProjectMember } from './mutations';
|
||||
|
||||
export interface GraphQLConfig {
|
||||
gqlEndpoint: string;
|
||||
@@ -91,26 +91,38 @@ export class GQLClient {
|
||||
return data;
|
||||
}
|
||||
|
||||
async removeMember (memberId: string): Promise<RemoveMemberResponse> {
|
||||
const { data } = await this.client.mutate({
|
||||
mutation: removeMember,
|
||||
variables: {
|
||||
memberId
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
async getProjectMembers (projectId: string) : Promise<GetProjectMembersResponse> {
|
||||
const { data } = await this.client.query({
|
||||
const result = await this.client.query({
|
||||
query: getProjectMembers,
|
||||
variables: {
|
||||
projectId
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
return result.data;
|
||||
}
|
||||
|
||||
async updateProjectMember (projectMemberId: string, data: UpdateProjectMemberInput): Promise<UpdateProjectMemberResponse> {
|
||||
const result = await this.client.mutate({
|
||||
mutation: updateProjectMember,
|
||||
variables: {
|
||||
projectMemberId,
|
||||
data
|
||||
}
|
||||
});
|
||||
|
||||
return result.data;
|
||||
}
|
||||
|
||||
async removeProjectMember (projectMemberId: string): Promise<RemoveProjectMemberResponse> {
|
||||
const result = await this.client.mutate({
|
||||
mutation: removeProjectMember,
|
||||
variables: {
|
||||
projectMemberId
|
||||
}
|
||||
});
|
||||
|
||||
return result.data;
|
||||
}
|
||||
|
||||
async searchProjects (searchText: string) : Promise<SearchProjectsResponse> {
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const removeMember = gql`
|
||||
mutation ($memberId: String!) {
|
||||
removeMember(memberId: $memberId)
|
||||
export const removeProjectMember = gql`
|
||||
mutation ($projectMemberId: String!) {
|
||||
removeProjectMember(projectMemberId: $projectMemberId)
|
||||
}
|
||||
`;
|
||||
|
||||
export const updateProjectMember = gql`
|
||||
mutation ($projectMemberId: String!, $data: UpdateProjectMemberInput) {
|
||||
updateProjectMember(projectMemberId: $projectMemberId, data: $data)
|
||||
}
|
||||
`;
|
||||
|
||||
|
||||
@@ -134,8 +134,12 @@ export type GetProjectMembersResponse = {
|
||||
projectMembers: ProjectMember[]
|
||||
}
|
||||
|
||||
export type RemoveMemberResponse = {
|
||||
removeMember: boolean;
|
||||
export type RemoveProjectMemberResponse = {
|
||||
removeProjectMember: boolean;
|
||||
}
|
||||
|
||||
export type UpdateProjectMemberResponse = {
|
||||
updateProjectMember: boolean;
|
||||
}
|
||||
|
||||
export type GetDeploymentsResponse = {
|
||||
@@ -185,6 +189,10 @@ export type UpdateEnvironmentVariableInput = {
|
||||
value: string;
|
||||
}
|
||||
|
||||
export type UpdateProjectMemberInput = {
|
||||
permissions: Permission[];
|
||||
}
|
||||
|
||||
export type UpdateEnvironmentVariableResponse = {
|
||||
updateEnvironmentVariable: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user