diff --git a/meilisearch-http/src/routes/mod.rs b/meilisearch-http/src/routes/mod.rs index bdb0b9329..f0f90e414 100644 --- a/meilisearch-http/src/routes/mod.rs +++ b/meilisearch-http/src/routes/mod.rs @@ -76,35 +76,26 @@ pub fn load_routes(app: &mut tide::Server) { .get(|ctx| into_response(setting::get_all(ctx))) .post(|ctx| into_response(setting::update_all(ctx))) .delete(|ctx| into_response(setting::delete_all(ctx))); - app.at("/indexes/:index/settings/ranking") - .get(|ctx| into_response(setting::get_ranking(ctx))) - .post(|ctx| into_response(setting::update_ranking(ctx))) - .delete(|ctx| into_response(setting::delete_ranking(ctx))); - app.at("/indexes/:index/settings/ranking/rules") + app.at("/indexes/:index/settings/ranking-rules") .get(|ctx| into_response(setting::get_rules(ctx))) .post(|ctx| into_response(setting::update_rules(ctx))) .delete(|ctx| into_response(setting::delete_rules(ctx))); - app.at("/indexes/:index/settings/ranking/distinct") + app.at("/indexes/:index/settings/ranking-distinct") .get(|ctx| into_response(setting::get_distinct(ctx))) .post(|ctx| into_response(setting::update_distinct(ctx))) .delete(|ctx| into_response(setting::delete_distinct(ctx))); - app.at("/indexes/:index/settings/attributes") - .get(|ctx| into_response(setting::get_attributes(ctx))) - .post(|ctx| into_response(setting::update_attributes(ctx))) - .delete(|ctx| into_response(setting::delete_attributes(ctx))); - - app.at("/indexes/:index/settings/attributes/identifier") + app.at("/indexes/:index/settings/identifier") .get(|ctx| into_response(setting::get_identifier(ctx))); - app.at("/indexes/:index/settings/attributes/searchable") + app.at("/indexes/:index/settings/searchable-attributes") .get(|ctx| into_response(setting::get_searchable(ctx))) .post(|ctx| into_response(setting::update_searchable(ctx))) .delete(|ctx| into_response(setting::delete_searchable(ctx))); - app.at("/indexes/:index/settings/attributes/displayed") + app.at("/indexes/:index/settings/displayed-attribute") .get(|ctx| into_response(setting::displayed(ctx))) .post(|ctx| into_response(setting::update_displayed(ctx))) .delete(|ctx| into_response(setting::delete_displayed(ctx))); diff --git a/meilisearch-http/src/routes/setting.rs b/meilisearch-http/src/routes/setting.rs index 0b7ed176a..b655578b3 100644 --- a/meilisearch-http/src/routes/setting.rs +++ b/meilisearch-http/src/routes/setting.rs @@ -141,73 +141,6 @@ pub async fn delete_all(ctx: Request) -> SResult { Ok(tide::Response::new(202).body_json(&response_body)?) } -#[derive(Default, Clone, Serialize, Deserialize)] -#[serde(rename_all = "camelCase", deny_unknown_fields)] -pub struct RankingSettings { - pub ranking_rules: Option>, - pub ranking_distinct: Option, -} - -pub async fn get_ranking(ctx: Request) -> SResult { - ctx.is_allowed(SettingsRead)?; - let index = ctx.index()?; - let db = &ctx.state().db; - let reader = db.main_read_txn()?; - - let ranking_rules = match index.main.ranking_rules(&reader)? { - Some(rules) => Some(rules.iter().map(|r| r.to_string()).collect()), - None => None, - }; - - let ranking_distinct = index.main.ranking_distinct(&reader)?; - let settings = RankingSettings { - ranking_rules, - ranking_distinct, - }; - - Ok(tide::Response::new(200).body_json(&settings).unwrap()) -} - -pub async fn update_ranking(mut ctx: Request) -> SResult { - ctx.is_allowed(SettingsWrite)?; - let index = ctx.index()?; - let settings: RankingSettings = ctx.body_json().await.map_err(ResponseError::bad_request)?; - let db = &ctx.state().db; - - let settings = Settings { - ranking_rules: Some(settings.ranking_rules), - ranking_distinct: Some(settings.ranking_distinct), - ..Settings::default() - }; - - let mut writer = db.update_write_txn()?; - let update_id = index.settings_update(&mut writer, settings.into_update()?)?; - writer.commit()?; - - let response_body = IndexUpdateResponse { update_id }; - Ok(tide::Response::new(202).body_json(&response_body)?) -} - -pub async fn delete_ranking(ctx: Request) -> SResult { - ctx.is_allowed(SettingsWrite)?; - let index = ctx.index()?; - let db = &ctx.state().db; - let mut writer = db.update_write_txn()?; - - let settings = SettingsUpdate { - ranking_rules: UpdateState::Clear, - ranking_distinct: UpdateState::Clear, - ..SettingsUpdate::default() - }; - - let update_id = index.settings_update(&mut writer, settings)?; - - writer.commit()?; - - let response_body = IndexUpdateResponse { update_id }; - Ok(tide::Response::new(202).body_json(&response_body)?) -} - pub async fn get_rules(ctx: Request) -> SResult { ctx.is_allowed(SettingsRead)?; let index = ctx.index()?; @@ -313,79 +246,6 @@ pub async fn delete_distinct(ctx: Request) -> SResult { Ok(tide::Response::new(202).body_json(&response_body)?) } -#[derive(Default, Clone, Serialize, Deserialize)] -#[serde(rename_all = "camelCase", deny_unknown_fields)] -pub struct AttributesSettings { - pub identifier: Option, - pub searchable_attributes: Option>, - pub displayed_attributes: Option>, -} - -pub async fn get_attributes(ctx: Request) -> SResult { - ctx.is_allowed(SettingsRead)?; - let index = ctx.index()?; - let db = &ctx.state().db; - let reader = db.main_read_txn()?; - - let schema = index.main.schema(&reader)?; - - let identifier = schema.clone().map(|s| s.identifier().to_string()); - let searchable_attributes = schema - .clone() - .map(|s| s.indexed_name().iter().map(|s| s.to_string()).collect()); - let displayed_attributes = schema - .clone() - .map(|s| s.displayed_name().iter().map(|s| s.to_string()).collect()); - - let settings = AttributesSettings { - identifier, - searchable_attributes, - displayed_attributes, - }; - - Ok(tide::Response::new(200).body_json(&settings).unwrap()) -} - -pub async fn update_attributes(mut ctx: Request) -> SResult { - ctx.is_allowed(SettingsWrite)?; - let index = ctx.index()?; - let settings: AttributesSettings = ctx.body_json().await.map_err(ResponseError::bad_request)?; - let db = &ctx.state().db; - - let settings = Settings { - identifier: Some(settings.identifier), - searchable_attributes: Some(settings.searchable_attributes), - displayed_attributes: Some(settings.displayed_attributes), - ..Settings::default() - }; - - let mut writer = db.update_write_txn()?; - let update_id = index.settings_update(&mut writer, settings.into_update()?)?; - writer.commit()?; - - let response_body = IndexUpdateResponse { update_id }; - Ok(tide::Response::new(202).body_json(&response_body)?) -} - -pub async fn delete_attributes(ctx: Request) -> SResult { - ctx.is_allowed(SettingsWrite)?; - let index = ctx.index()?; - let db = &ctx.state().db; - - let settings = SettingsUpdate { - searchable_attributes: UpdateState::Clear, - displayed_attributes: UpdateState::Clear, - ..SettingsUpdate::default() - }; - - let mut writer = db.update_write_txn()?; - let update_id = index.settings_update(&mut writer, settings)?; - writer.commit()?; - - let response_body = IndexUpdateResponse { update_id }; - Ok(tide::Response::new(202).body_json(&response_body)?) -} - pub async fn get_identifier(ctx: Request) -> SResult { ctx.is_allowed(SettingsRead)?; let index = ctx.index()?;