From 322d6b8cfec154b5ee022b90d8a3760e25e358f3 Mon Sep 17 00:00:00 2001 From: marin postma Date: Wed, 23 Jun 2021 15:25:56 +0200 Subject: [PATCH] fix serialization bug in settings --- meilisearch-http/src/routes/settings.rs | 27 ++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/meilisearch-http/src/routes/settings.rs b/meilisearch-http/src/routes/settings.rs index 10ce7292e..07e9a7563 100644 --- a/meilisearch-http/src/routes/settings.rs +++ b/meilisearch-http/src/routes/settings.rs @@ -7,7 +7,7 @@ use crate::{error::ResponseError, index::Unchecked}; #[macro_export] macro_rules! make_setting_route { - ($route:literal, $type:ty, $attr:ident) => { + ($route:literal, $type:ty, $attr:ident, $camelcase_attr:literal) => { mod $attr { use actix_web::{web, HttpResponse}; @@ -51,7 +51,9 @@ macro_rules! make_setting_route { index_uid: actix_web::web::Path, ) -> std::result::Result { let settings = data.settings(index_uid.into_inner()).await?; - Ok(HttpResponse::Ok().json(settings.$attr)) + let mut json = serde_json::json!(&settings); + let val = json[$camelcase_attr].take(); + Ok(HttpResponse::Ok().json(val)) } } }; @@ -60,43 +62,50 @@ macro_rules! make_setting_route { make_setting_route!( "/indexes/{index_uid}/settings/filterable-attributes", std::collections::HashSet, - filterable_attributes + filterable_attributes, + "filterableAttributes" ); make_setting_route!( "/indexes/{index_uid}/settings/displayed-attributes", Vec, - displayed_attributes + displayed_attributes, + "displayedAttributes" ); make_setting_route!( "/indexes/{index_uid}/settings/searchable-attributes", Vec, - searchable_attributes + searchable_attributes, + "searchableAttributes" ); make_setting_route!( "/indexes/{index_uid}/settings/stop-words", std::collections::BTreeSet, - stop_words + stop_words, + "stopWords" ); make_setting_route!( "/indexes/{index_uid}/settings/synonyms", std::collections::BTreeMap>, - synonyms + synonyms, + "synonyms" ); make_setting_route!( "/indexes/{index_uid}/settings/distinct-attribute", String, - distinct_attribute + distinct_attribute, + "distinctAttribute" ); make_setting_route!( "/indexes/{index_uid}/settings/ranking-rules", Vec, - ranking_rules + ranking_rules, + "rankingRules" ); macro_rules! create_services {