ensure subdomain is null if is base domain

This commit is contained in:
miloschwartz 2025-07-15 15:27:23 -07:00
parent f1291d4d7d
commit a3be0d4655
No known key found for this signature in database
3 changed files with 51 additions and 30 deletions

View file

@ -35,8 +35,8 @@ const createHttpResourceSchema = z
name: z.string().min(1).max(255),
subdomain: z
.string()
.optional()
.transform((val) => val?.toLowerCase()),
.nullable()
.optional(),
siteId: z.number(),
http: z.boolean(),
protocol: z.enum(["tcp", "udp"]),
@ -201,7 +201,8 @@ async function createHttpResource(
);
}
const { name, subdomain, domainId } = parsedBody.data;
const { name, domainId } = parsedBody.data;
let subdomain = parsedBody.data.subdomain;
const [domainRes] = await db
.select()
@ -274,6 +275,10 @@ async function createHttpResource(
}
}
if (fullDomain === domainRes.domains.baseDomain) {
subdomain = null;
}
fullDomain = fullDomain.toLowerCase();
logger.debug(`Full domain: ${fullDomain}`);

View file

@ -35,8 +35,8 @@ const updateHttpResourceBodySchema = z
.object({
name: z.string().min(1).max(255).optional(),
subdomain: subdomainSchema
.optional()
.transform((val) => val?.toLowerCase()),
.nullable()
.optional(),
ssl: z.boolean().optional(),
sso: z.boolean().optional(),
blockAccess: z.boolean().optional(),
@ -286,7 +286,7 @@ async function updateHttpResource(
} else if (domainRes.domains.type == "cname") {
fullDomain = domainRes.domains.baseDomain;
} else if (domainRes.domains.type == "wildcard") {
if (updateData.subdomain) {
if (updateData.subdomain !== undefined) {
// the subdomain cant have a dot in it
const parsedSubdomain = subdomainSchema.safeParse(updateData.subdomain);
if (!parsedSubdomain.success) {
@ -341,11 +341,15 @@ async function updateHttpResource(
.set({ fullDomain })
.where(eq(resources.resourceId, resource.resourceId));
}
if (fullDomain === domainRes.domains.baseDomain) {
updateData.subdomain = null;
}
}
const updatedResource = await db
.update(resources)
.set(updateData)
.set({...updateData, })
.where(eq(resources.resourceId, resource.resourceId))
.returning();