mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-04-18 07:57:59 +02:00
Merge pull request #5486 from CodeMan62/fix-network-url-validation-error-msg
Update network URL validation error message format to match expected
This commit is contained in:
commit
c3c5a928e4
@ -119,10 +119,22 @@ pub struct Network {
|
|||||||
impl Remote {
|
impl Remote {
|
||||||
pub fn try_into_db_node(self, name: &str) -> Result<DbRemote, ResponseError> {
|
pub fn try_into_db_node(self, name: &str) -> Result<DbRemote, ResponseError> {
|
||||||
Ok(DbRemote {
|
Ok(DbRemote {
|
||||||
url: self.url.set().ok_or(ResponseError::from_msg(
|
url: self
|
||||||
format!("Missing field `.remotes.{name}.url`"),
|
.url
|
||||||
meilisearch_types::error::Code::MissingNetworkUrl,
|
.set()
|
||||||
))?,
|
.ok_or(ResponseError::from_msg(
|
||||||
|
format!("Missing field `.remotes.{name}.url`"),
|
||||||
|
meilisearch_types::error::Code::MissingNetworkUrl,
|
||||||
|
))
|
||||||
|
.and_then(|url| {
|
||||||
|
if let Err(error) = url::Url::parse(&url) {
|
||||||
|
return Err(ResponseError::from_msg(
|
||||||
|
format!("Invalid `.remotes.{name}.url` (`{url}`): {error}"),
|
||||||
|
meilisearch_types::error::Code::InvalidNetworkUrl,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
Ok(url)
|
||||||
|
})?,
|
||||||
search_api_key: self.search_api_key.set(),
|
search_api_key: self.search_api_key.set(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -211,7 +223,15 @@ async fn patch_network(
|
|||||||
|
|
||||||
let merged = DbRemote {
|
let merged = DbRemote {
|
||||||
url: match new_url {
|
url: match new_url {
|
||||||
Setting::Set(new_url) => new_url,
|
Setting::Set(new_url) => {
|
||||||
|
if let Err(error) = url::Url::parse(&new_url) {
|
||||||
|
return Err(ResponseError::from_msg(
|
||||||
|
format!("Invalid `.remotes.{key}.url` (`{new_url}`): {error}"),
|
||||||
|
meilisearch_types::error::Code::InvalidNetworkUrl,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
new_url
|
||||||
|
}
|
||||||
Setting::Reset => {
|
Setting::Reset => {
|
||||||
return Err(ResponseError::from_msg(
|
return Err(ResponseError::from_msg(
|
||||||
format!(
|
format!(
|
||||||
|
@ -117,6 +117,25 @@ async fn errors_on_param() {
|
|||||||
}
|
}
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
|
// remote with url not valid
|
||||||
|
let (response, code) = server
|
||||||
|
.set_network(json!({"remotes": {
|
||||||
|
"new": {
|
||||||
|
"url": "no-http-scheme"
|
||||||
|
}
|
||||||
|
}}))
|
||||||
|
.await;
|
||||||
|
|
||||||
|
meili_snap::snapshot!(code, @"400 Bad Request");
|
||||||
|
meili_snap::snapshot!(meili_snap::json_string!(response), @r###"
|
||||||
|
{
|
||||||
|
"message": "Invalid `.remotes.new.url` (`no-http-scheme`): relative URL without a base",
|
||||||
|
"code": "invalid_network_url",
|
||||||
|
"type": "invalid_request",
|
||||||
|
"link": "https://docs.meilisearch.com/errors#invalid_network_url"
|
||||||
|
}
|
||||||
|
"###);
|
||||||
|
|
||||||
// remote with non-existing param
|
// remote with non-existing param
|
||||||
let (response, code) = server
|
let (response, code) = server
|
||||||
.set_network(json!({"remotes": {
|
.set_network(json!({"remotes": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user