feat:Update pnpm-lock.yaml to link shared package; modify API routes to utilize new schemas for domain and service management; enhance DNS record handling with CNAME support; refactor service and subdomain routes for improved functionality; implement confirm dialog for domain deletion in the frontend; clean up unused components and improve UI consistency.
Build, Test, and Push CFDM Docker Image / test (push) Failing after 51s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Has been skipped
Build, Test, and Push CFDM Docker Image / update-wiki (push) Has been skipped
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped
Build, Test, and Push CFDM Docker Image / test (push) Failing after 51s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Has been skipped
Build, Test, and Push CFDM Docker Image / update-wiki (push) Has been skipped
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped
This commit is contained in:
1 parent
4a70cf5854
commit
6d1d8ca4f3
99 files changed
+6692
-1483
No files matched your search
@@ -10,8 +10,11 @@ import {
|
||||
serviceBindingSchema,
|
||||
serviceGroupsResponseSchema,
|
||||
serviceViewSchema,
|
||||
subdomainSchema,
|
||||
type CreateSubdomainInput,
|
||||
type UpdateDomainInput,
|
||||
type UpdateSubdomainInput,
|
||||
} from '@/lib/schemas'
|
||||
import { subdomainSchema } from '@/lib/schemas-ext'
|
||||
import { z } from 'zod'
|
||||
|
||||
export const groupKeys = {
|
||||
@@ -160,3 +163,48 @@ export const subdomainsListQueryOptions = (domainId: number) =>
|
||||
return z.array(subdomainSchema).parse(data)
|
||||
},
|
||||
})
|
||||
|
||||
export interface CreateServiceBindingBody {
|
||||
domain_id: number
|
||||
service_id: number
|
||||
hostname?: string
|
||||
target_ip?: string
|
||||
}
|
||||
|
||||
export async function createSubdomain(domainId: number, body: CreateSubdomainInput) {
|
||||
const data = await api.post<unknown>(`/api/v1/domains/${domainId}/subdomains`, body)
|
||||
return subdomainSchema.parse(data)
|
||||
}
|
||||
|
||||
export async function updateSubdomain(id: number, body: UpdateSubdomainInput) {
|
||||
const data = await api.patch<unknown>(`/api/v1/subdomains/${id}`, body)
|
||||
return subdomainSchema.parse(data)
|
||||
}
|
||||
|
||||
export async function updateDomain(id: number, body: UpdateDomainInput) {
|
||||
const data = await api.patch<unknown>(`/api/v1/domains/${id}`, body)
|
||||
return domainSchema.parse(data)
|
||||
}
|
||||
|
||||
export async function deleteSubdomain(id: number) {
|
||||
return api.delete<{ deleted: boolean }>(`/api/v1/subdomains/${id}`)
|
||||
}
|
||||
|
||||
export async function createServiceBinding(body: CreateServiceBindingBody) {
|
||||
const data = await api.post<unknown>('/api/v1/service-bindings', body)
|
||||
return serviceBindingSchema.parse(data)
|
||||
}
|
||||
|
||||
export async function deleteServiceBinding(id: number) {
|
||||
return api.delete<{ deleted: boolean }>(`/api/v1/service-bindings/${id}`)
|
||||
}
|
||||
|
||||
export function invalidateDomainPage(
|
||||
queryClient: import('@tanstack/react-query').QueryClient,
|
||||
domainId: number,
|
||||
) {
|
||||
void queryClient.invalidateQueries({ queryKey: subdomainKeys.list(domainId) })
|
||||
void queryClient.invalidateQueries({ queryKey: serviceBindingKeys.byDomain(domainId) })
|
||||
void queryClient.invalidateQueries({ queryKey: domainKeys.detail(domainId) })
|
||||
void queryClient.invalidateQueries({ queryKey: dnsKeys.list(domainId) })
|
||||
}
|
||||
Reference in new issue
Block a user