forked from cerc-io/snowballtools-base
Implement functionality for adding new domain in project settings (#48)
* Add mutation to create new domain * Update mutation to create two domains for www and non-www variant * Add gql-client method and frontend to create domain * Display fetched domains in domains tab panel using project id * Fix graphql type for fetching domains --------- Co-authored-by: neeraj <neeraj.rtly@gmail.com>
This commit is contained in:
committed by
Ashwin Phatak
co-authored by
neeraj
parent
8c38d4788e
commit
a34e2286a6
@@ -1,8 +1,8 @@
|
||||
import { ApolloClient, DefaultOptions, InMemoryCache, NormalizedCacheObject } from '@apollo/client';
|
||||
|
||||
import { getUser, getOrganizations, getDeployments, getProjectMembers, searchProjects, getEnvironmentVariables, getProject, getProjectsInOrganization } from './queries';
|
||||
import { AddEnvironmentVariableInput, AddEnvironmentVariablesResponse, GetDeploymentsResponse, GetEnvironmentVariablesResponse, GetOrganizationsResponse, GetProjectMembersResponse, SearchProjectsResponse, GetUserResponse, RemoveMemberResponse, UpdateDeploymentToProdResponse, GetProjectResponse, UpdateProjectResponse, UpdateProjectInput, RedeployToProdResponse, DeleteProjectResponse, GetProjectsInOrganizationResponse, RollbackDeploymentResponse } from './types';
|
||||
import { removeMember, addEnvironmentVariables, updateDeploymentToProd, updateProjectMutation, redeployToProd, deleteProject, rollbackDeployment } from './mutations';
|
||||
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 } from './types';
|
||||
import { removeMember, addEnvironmentVariables, updateDeploymentToProd, updateProjectMutation, redeployToProd, deleteProject, addDomain, rollbackDeployment } from './mutations';
|
||||
|
||||
export interface GraphQLConfig {
|
||||
gqlEndpoint: string;
|
||||
@@ -192,4 +192,27 @@ export class GQLClient {
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
async addDomain (projectId: string, domainDetails: AddDomainInput): Promise<AddDomainResponse> {
|
||||
const { data } = await this.client.mutate({
|
||||
mutation: addDomain,
|
||||
variables: {
|
||||
projectId,
|
||||
domainDetails
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
async getDomains (projectId: string): Promise<GetDomainsResponse> {
|
||||
const { data } = await this.client.query({
|
||||
query: getDomains,
|
||||
variables: {
|
||||
projectId
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,3 +40,9 @@ mutation ($projectId: String! ,$deploymentId: String!) {
|
||||
rollbackDeployment(proejctId: $projectId, deploymentId: $deploymentId)
|
||||
}
|
||||
`;
|
||||
|
||||
export const addDomain = gql`
|
||||
mutation ($projectId: String!, $domainDetails: AddDomainInput!) {
|
||||
addDomain(projectId: $projectId, domainDetails: $domainDetails)
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -215,3 +215,17 @@ query ($searchText: String!) {
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const getDomains = gql`
|
||||
query ($projectId: String!) {
|
||||
domains(projectId: $projectId) {
|
||||
branch
|
||||
createdAt
|
||||
isRedirected
|
||||
id
|
||||
name
|
||||
status
|
||||
updatedAt
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -161,6 +161,10 @@ export type GetProjectsInOrganizationResponse = {
|
||||
projectsInOrganization: Project[]
|
||||
}
|
||||
|
||||
export type GetDomainsResponse = {
|
||||
domains: Domain[]
|
||||
}
|
||||
|
||||
export type SearchProjectsResponse = {
|
||||
searchProjects: Project[]
|
||||
}
|
||||
@@ -199,3 +203,11 @@ export type RedeployToProdResponse = {
|
||||
export type RollbackDeploymentResponse = {
|
||||
rollbackDeployment: boolean
|
||||
}
|
||||
|
||||
export type AddDomainInput = {
|
||||
name: string
|
||||
}
|
||||
|
||||
export type AddDomainResponse = {
|
||||
addDomain: true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user