in client/src/config.rs [171:200]
fn validate_endpoint(&self) -> Result<Endpoint, ConfigError> {
let endpoint = self
.endpoint
.as_ref()
.ok_or_else(|| ConfigError::InvalidEndpoint("Endpoint not provided".to_string()))?;
if !ENDPOINT_REGEX.is_match(endpoint) {
return Err(ConfigError::InvalidEndpoint(endpoint.to_string()));
}
if let Some(stripped) = endpoint.strip_prefix(SCHEME_HTTPS) {
return Ok(Endpoint {
domain: stripped.to_string(),
scheme: SCHEME_HTTPS,
});
}
if let Some(stripped) = endpoint.strip_prefix(SCHEME_HTTP) {
return Ok(Endpoint {
domain: stripped.to_string(),
scheme: SCHEME_HTTP,
});
}
// No scheme in the input, use default
Ok(Endpoint {
domain: endpoint.to_string(),
scheme: DEFAULT_HTTP_SCHEME,
})
}