mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-22 08:45:24 +00:00
Make sure the domain is defined on a http resource
This commit is contained in:
@@ -74,16 +74,14 @@ const createSiteResourceSchema = z
|
|||||||
.refine(
|
.refine(
|
||||||
(data) => {
|
(data) => {
|
||||||
if (data.mode === "host") {
|
if (data.mode === "host") {
|
||||||
if (data.mode == "host") {
|
// Check if it's a valid IP address using zod (v4 or v6)
|
||||||
// Check if it's a valid IP address using zod (v4 or v6)
|
const isValidIP = z
|
||||||
const isValidIP = z
|
// .union([z.ipv4(), z.ipv6()])
|
||||||
// .union([z.ipv4(), z.ipv6()])
|
.union([z.ipv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
||||||
.union([z.ipv4()]) // for now lets just do ipv4 until we verify ipv6 works everywhere
|
.safeParse(data.destination).success;
|
||||||
.safeParse(data.destination).success;
|
|
||||||
|
|
||||||
if (isValidIP) {
|
if (isValidIP) {
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if it's a valid domain (hostname pattern, TLD not required)
|
// Check if it's a valid domain (hostname pattern, TLD not required)
|
||||||
@@ -96,17 +94,12 @@ const createSiteResourceSchema = z
|
|||||||
data.alias.trim() !== "";
|
data.alias.trim() !== "";
|
||||||
|
|
||||||
return isValidDomain && isValidAlias; // require the alias to be set in the case of domain
|
return isValidDomain && isValidAlias; // require the alias to be set in the case of domain
|
||||||
}
|
} else if (data.mode === "http") {
|
||||||
return true;
|
// we have to have a domainId defined
|
||||||
},
|
if (!data.domainId) {
|
||||||
{
|
return false;
|
||||||
message:
|
}
|
||||||
"Destination must be a valid IPV4 address or valid domain AND alias is required"
|
} else if (data.mode === "cidr") {
|
||||||
}
|
|
||||||
)
|
|
||||||
.refine(
|
|
||||||
(data) => {
|
|
||||||
if (data.mode === "cidr") {
|
|
||||||
// Check if it's a valid CIDR (v4 or v6)
|
// Check if it's a valid CIDR (v4 or v6)
|
||||||
const isValidCIDR = z
|
const isValidCIDR = z
|
||||||
.union([z.cidrv4(), z.cidrv6()])
|
.union([z.cidrv4(), z.cidrv6()])
|
||||||
@@ -116,7 +109,8 @@ const createSiteResourceSchema = z
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
message: "Destination must be a valid CIDR notation for cidr mode"
|
message:
|
||||||
|
"Destination must be a valid IPV4 address or valid domain AND alias is required"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.refine(
|
.refine(
|
||||||
|
|||||||
@@ -104,6 +104,17 @@ const updateSiteResourceSchema = z
|
|||||||
data.alias.trim() !== "";
|
data.alias.trim() !== "";
|
||||||
|
|
||||||
return isValidDomain && isValidAlias; // require the alias to be set in the case of domain
|
return isValidDomain && isValidAlias; // require the alias to be set in the case of domain
|
||||||
|
} else if (data.mode === "cidr" && data.destination) {
|
||||||
|
// Check if it's a valid CIDR (v4 or v6)
|
||||||
|
const isValidCIDR = z
|
||||||
|
.union([z.cidrv4(), z.cidrv6()])
|
||||||
|
.safeParse(data.destination).success;
|
||||||
|
return isValidCIDR;
|
||||||
|
} else if (data.mode === "http") {
|
||||||
|
// we have to have a domainId defined
|
||||||
|
if (!data.domainId) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
@@ -112,21 +123,6 @@ const updateSiteResourceSchema = z
|
|||||||
"Destination must be a valid IP address or valid domain AND alias is required"
|
"Destination must be a valid IP address or valid domain AND alias is required"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.refine(
|
|
||||||
(data) => {
|
|
||||||
if (data.mode === "cidr" && data.destination) {
|
|
||||||
// Check if it's a valid CIDR (v4 or v6)
|
|
||||||
const isValidCIDR = z
|
|
||||||
.union([z.cidrv4(), z.cidrv6()])
|
|
||||||
.safeParse(data.destination).success;
|
|
||||||
return isValidCIDR;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
message: "Destination must be a valid CIDR notation for cidr mode"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.refine(
|
.refine(
|
||||||
(data) => {
|
(data) => {
|
||||||
if (data.mode !== "http") return true;
|
if (data.mode !== "http") return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user