mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-09-04 19:56:30 +00:00
Merge pull request #5807 from meilisearch/patch-chat-settings
Turn chat settings to `PATCH`
This commit is contained in:
@ -511,7 +511,7 @@ make_setting_routes!(
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: "/chat",
|
route: "/chat",
|
||||||
update_verb: put,
|
update_verb: patch,
|
||||||
value_type: ChatSettings,
|
value_type: ChatSettings,
|
||||||
err_type: meilisearch_types::deserr::DeserrJsonError<
|
err_type: meilisearch_types::deserr::DeserrJsonError<
|
||||||
meilisearch_types::error::deserr_codes::InvalidSettingsIndexChat,
|
meilisearch_types::error::deserr_codes::InvalidSettingsIndexChat,
|
||||||
|
@ -249,6 +249,11 @@ impl<'a> Index<'a, Owned> {
|
|||||||
self.service.put_encoded(url, settings, self.encoder).await
|
self.service.put_encoded(url, settings, self.encoder).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn update_settings_chat(&self, settings: Value) -> (Value, StatusCode) {
|
||||||
|
let url = format!("/indexes/{}/settings/chat", urlencode(self.uid.as_ref()));
|
||||||
|
self.service.patch_encoded(url, settings, self.encoder).await
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn delete_settings(&self) -> (Value, StatusCode) {
|
pub async fn delete_settings(&self) -> (Value, StatusCode) {
|
||||||
let url = format!("/indexes/{}/settings", urlencode(self.uid.as_ref()));
|
let url = format!("/indexes/{}/settings", urlencode(self.uid.as_ref()));
|
||||||
self.service.delete(url).await
|
self.service.delete(url).await
|
||||||
|
66
crates/meilisearch/tests/settings/chat.rs
Normal file
66
crates/meilisearch/tests/settings/chat.rs
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
use crate::common::Server;
|
||||||
|
use crate::json;
|
||||||
|
use meili_snap::{json_string, snapshot};
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn set_reset_chat_issue_5772() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.unique_index();
|
||||||
|
|
||||||
|
let (_, code) = server
|
||||||
|
.set_features(json!({
|
||||||
|
"chatCompletions": true,
|
||||||
|
}))
|
||||||
|
.await;
|
||||||
|
snapshot!(code, @r#"200 OK"#);
|
||||||
|
|
||||||
|
let (task1, _code) = index.update_settings_chat(json!({
|
||||||
|
"description": "test!",
|
||||||
|
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
||||||
|
"documentTemplateMaxBytes": 400,
|
||||||
|
"searchParameters": {
|
||||||
|
"limit": 15,
|
||||||
|
"sort": [],
|
||||||
|
"attributesToSearchOn": []
|
||||||
|
}
|
||||||
|
})).await;
|
||||||
|
server.wait_task(task1.uid()).await.succeeded();
|
||||||
|
|
||||||
|
let (response, _) = index.settings().await;
|
||||||
|
snapshot!(json_string!(response["chat"]), @r#"
|
||||||
|
{
|
||||||
|
"description": "test!",
|
||||||
|
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
||||||
|
"documentTemplateMaxBytes": 400,
|
||||||
|
"searchParameters": {
|
||||||
|
"limit": 15,
|
||||||
|
"sort": [],
|
||||||
|
"attributesToSearchOn": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"#);
|
||||||
|
|
||||||
|
let (task2, _status_code) = index.update_settings_chat(json!({
|
||||||
|
"description": "test!",
|
||||||
|
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
||||||
|
"documentTemplateMaxBytes": 400,
|
||||||
|
"searchParameters": {
|
||||||
|
"limit": 16
|
||||||
|
}
|
||||||
|
})).await;
|
||||||
|
server.wait_task(task2.uid()).await.succeeded();
|
||||||
|
|
||||||
|
let (response, _) = index.settings().await;
|
||||||
|
snapshot!(json_string!(response["chat"]), @r#"
|
||||||
|
{
|
||||||
|
"description": "test!",
|
||||||
|
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
||||||
|
"documentTemplateMaxBytes": 400,
|
||||||
|
"searchParameters": {
|
||||||
|
"limit": 16,
|
||||||
|
"sort": [],
|
||||||
|
"attributesToSearchOn": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"#);
|
||||||
|
}
|
@ -186,7 +186,7 @@ test_setting_routes!(
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
setting: chat,
|
setting: chat,
|
||||||
update_verb: put,
|
update_verb: patch,
|
||||||
default_value: {
|
default_value: {
|
||||||
"description": "",
|
"description": "",
|
||||||
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
"documentTemplate": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
mod chat;
|
||||||
mod distinct;
|
mod distinct;
|
||||||
mod errors;
|
mod errors;
|
||||||
mod get_settings;
|
mod get_settings;
|
||||||
|
Reference in New Issue
Block a user