From a7190ed804f31b6409e83f5cc31bdb0489c7899f Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Fri, 31 Jan 2025 10:30:46 +0530 Subject: [PATCH] Show custom domain in overview tabs panel --- packages/backend/src/database.ts | 6 +++--- packages/backend/src/resolvers.ts | 12 +++++++++++ packages/backend/src/schema.gql | 1 + packages/backend/src/service.ts | 8 +++++++- .../pages/org-slug/projects/id/Overview.tsx | 20 +++++++++++++++++-- packages/gql-client/src/client.ts | 15 ++++++++++++++ packages/gql-client/src/queries.ts | 13 ++++++++++++ packages/gql-client/src/types.ts | 4 ++++ 8 files changed, 73 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/database.ts b/packages/backend/src/database.ts index 68d5bd3c..fa8b1c99 100644 --- a/packages/backend/src/database.ts +++ b/packages/backend/src/database.ts @@ -605,10 +605,10 @@ export class Database { async getOldestDomainByProjectId( projectId: string, - ): Promise { + ): Promise { const domainRepository = this.dataSource.getRepository(Domain); - const domains = await domainRepository.find({ + const domain = await domainRepository.findOne({ where: { project: { id: projectId @@ -619,7 +619,7 @@ export class Database { } }); - return domains; + return domain; } async getLatestDNSDataByProjectId( diff --git a/packages/backend/src/resolvers.ts b/packages/backend/src/resolvers.ts index e21a9d70..a34c5f58 100644 --- a/packages/backend/src/resolvers.ts +++ b/packages/backend/src/resolvers.ts @@ -70,6 +70,18 @@ export const createResolvers = async (service: Service): Promise => { return service.getDomainsByProjectId(projectId, filter); }, + oldestDomain: async ( + _: any, + { projectId }: { projectId: string }, + ) => { + try { + return await service.getOldestDomainByProjectId(projectId); + } catch (err) { + log(err); + return false; + } + }, + getAuctionData: async ( _: any, { auctionId }: { auctionId: string }, diff --git a/packages/backend/src/schema.gql b/packages/backend/src/schema.gql index 0e78a25e..dca39278 100644 --- a/packages/backend/src/schema.gql +++ b/packages/backend/src/schema.gql @@ -274,6 +274,7 @@ type Query { searchProjects(searchText: String!): [Project!] getAuctionData(auctionId: String!): Auction! getLatestDNSDataByProjectId(projectId: String!): DNSRecordAttributes + oldestDomain(projectId: String!): Domain domains(projectId: String!, filter: FilterDomainsInput): [Domain] deployers: [Deployer] address: String! diff --git a/packages/backend/src/service.ts b/packages/backend/src/service.ts index 5198f6b3..0df4c829 100644 --- a/packages/backend/src/service.ts +++ b/packages/backend/src/service.ts @@ -674,7 +674,7 @@ export class Service { appName: repo, repository: repoUrl, environmentVariables: environmentVariablesObj, - dns: domain?.[0]?.name ?? `${newDeployment.project.name}`, + dns: domain?.name ?? `${newDeployment.project.name}`, lrn: deployer!.deployerLrn!, apiUrl: deployer!.deployerApiUrl!, payment: data.project.txHash, @@ -1342,6 +1342,12 @@ export class Service { return updateResult; } + async getOldestDomainByProjectId( + projectId: string, + ): Promise { + return await this.db.getOldestDomainByProjectId(projectId) + } + async authenticateGitHub( code: string, user: User, diff --git a/packages/frontend/src/pages/org-slug/projects/id/Overview.tsx b/packages/frontend/src/pages/org-slug/projects/id/Overview.tsx index 7732a6e6..7abc0b91 100644 --- a/packages/frontend/src/pages/org-slug/projects/id/Overview.tsx +++ b/packages/frontend/src/pages/org-slug/projects/id/Overview.tsx @@ -32,6 +32,7 @@ const OverviewTabPanel = () => { const [activities, setActivities] = useState([]); const [fetchingActivities, setFetchingActivities] = useState(true); const [liveDomain, setLiveDomain] = useState(); + const [customDomain, setCustomDomain] = useState(null); const client = useGQLClient(); const { project, onUpdate } = useOutletContext(); @@ -124,6 +125,16 @@ const OverviewTabPanel = () => { fetchLiveProdDomain(); }, [project]); + useEffect(() => { + const fetchCustomDomain = async () => { + const { oldestDomain } = await client.oldestDomain(project.id); + + setCustomDomain(oldestDomain); + }; + + fetchCustomDomain(); + }, [project]); + return (
@@ -194,10 +205,15 @@ const OverviewTabPanel = () => { project.deployments.map((deployment) => (
- {`https://${project.name.toLowerCase()}.${deployment.deployer.baseDomain}`} + {customDomain?.name ?? + `https://${project.name.toLowerCase()}.${deployment.deployer.baseDomain}`} diff --git a/packages/gql-client/src/client.ts b/packages/gql-client/src/client.ts index 8432da7b..c5deab4e 100644 --- a/packages/gql-client/src/client.ts +++ b/packages/gql-client/src/client.ts @@ -393,6 +393,21 @@ export class GQLClient { return data; } + async oldestDomain( + projectId: string, + ): Promise { + const { data } = await this.client.query({ + query: queries.oldestDomain, + variables: { + projectId, + }, + }); + + console.log({data}) + + return data; + } + async authenticateGitHub( code: string ): Promise { diff --git a/packages/gql-client/src/queries.ts b/packages/gql-client/src/queries.ts index 592bdca8..23b83032 100644 --- a/packages/gql-client/src/queries.ts +++ b/packages/gql-client/src/queries.ts @@ -261,6 +261,19 @@ query ($projectId: String!, $filter: FilterDomainsInput) { } `; +export const oldestDomain = gql` +query ($projectId: String!) { + oldestDomain(projectId: $projectId) { + branch + createdAt + id + name + status + updatedAt + } +} +` + export const getAuctionData = gql` query ($auctionId: String!) { getAuctionData(auctionId: $auctionId){ diff --git a/packages/gql-client/src/types.ts b/packages/gql-client/src/types.ts index c6715af5..7c5414bd 100644 --- a/packages/gql-client/src/types.ts +++ b/packages/gql-client/src/types.ts @@ -236,6 +236,10 @@ export type GetDomainsResponse = { domains: Domain[]; }; +export type OldestDomainResponse = { + oldestDomain: Domain | null; +} + export type GetDeployersResponse = { deployers: Deployer[]; };