use actix_web::{web, HttpResponse, get}; use crate::data::get_indexed_attributes; use crate::error::{Error, ResponseError}; use crate::helpers::Authentication; use crate::make_update_delete_routes; use crate::Data; #[get( "/indexes/{index_uid}/settings/searchable-attributes", wrap = "Authentication::Private" )] async fn get( data: web::Data, index_uid: web::Path, ) -> Result { let index = data .db .load() .open_index(&index_uid.as_ref()) .ok_or(Error::index_not_found(&index_uid.as_ref()))?; let reader = data.db.load().main_read_txn()?; let schema = index.main.schema(&reader)?; let searchable_attributes: Option> = schema.as_ref().map(get_indexed_attributes); Ok(HttpResponse::Ok().json(searchable_attributes)) } make_update_delete_routes!( "/indexes/{index_uid}/settings/searchable-attributes", Vec, searchable_attributes );