mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 04:17:10 +02:00
fix tests, restore behavior
This commit is contained in:
parent
c771694623
commit
3bd15a4195
16 changed files with 218 additions and 145 deletions
|
@ -41,7 +41,6 @@ pub enum Error {
|
|||
MissingHeader(String),
|
||||
NotFound(String),
|
||||
OpenIndex(String),
|
||||
FilterParsing(String),
|
||||
RetrieveDocument(u32, String),
|
||||
SearchDocuments(String),
|
||||
PayloadTooLarge,
|
||||
|
@ -52,8 +51,26 @@ impl error::Error for Error {}
|
|||
|
||||
impl ErrorCode for Error {
|
||||
fn error_code(&self) -> Code {
|
||||
//TODO populate with right error codes
|
||||
Code::Other
|
||||
use Error::*;
|
||||
match self {
|
||||
BadParameter(_, _) => Code::BadParameter,
|
||||
BadRequest(_) => Code::BadRequest,
|
||||
CreateIndex(_) => Code::CreateIndex,
|
||||
DocumentNotFound(_) => Code::DocumentNotFound,
|
||||
IndexNotFound(_) => Code::IndexNotFound,
|
||||
Internal(_) => Code::Internal,
|
||||
InvalidIndexUid => Code::InvalidIndexUid,
|
||||
InvalidToken(_) => Code::InvalidToken,
|
||||
Maintenance => Code::Maintenance,
|
||||
MissingAuthorizationHeader => Code::MissingAuthorizationHeader,
|
||||
MissingHeader(_) => Code::MissingHeader,
|
||||
NotFound(_) => Code::NotFound,
|
||||
OpenIndex(_) => Code::OpenIndex,
|
||||
RetrieveDocument(_, _) => Code::RetrieveDocument,
|
||||
SearchDocuments(_) => Code::SearchDocuments,
|
||||
PayloadTooLarge => Code::PayloadTooLarge,
|
||||
UnsupportedMediaType => Code::UnsupportedMediaType,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,7 +86,7 @@ impl error::Error for FacetCountError {}
|
|||
|
||||
impl ErrorCode for FacetCountError {
|
||||
fn error_code(&self) -> Code {
|
||||
unimplemented!()
|
||||
Code::BadRequest
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,7 +169,7 @@ impl Error {
|
|||
Error::Maintenance
|
||||
}
|
||||
|
||||
pub fn retrieve_document(doc_id: u64, err: impl fmt::Display) -> Error {
|
||||
pub fn retrieve_document(doc_id: u32, err: impl fmt::Display) -> Error {
|
||||
Error::RetrieveDocument(doc_id, err.to_string())
|
||||
}
|
||||
|
||||
|
|
|
@ -44,10 +44,15 @@ async fn get_document(
|
|||
.ok_or(Error::index_not_found(&path.index_uid))?;
|
||||
|
||||
let reader = data.db.main_read_txn()?;
|
||||
|
||||
let internal_id = index.main
|
||||
.external_to_internal_docid(&reader, &path.document_id)?
|
||||
.ok_or(Error::document_not_found(&path.document_id))?;
|
||||
|
||||
let document: Document = index
|
||||
.document(&reader, None, internal_id)?
|
||||
.ok_or(Error::document_not_found(&path.document_id))?;
|
||||
|
||||
Ok(HttpResponse::Ok().json(document))
|
||||
}
|
||||
|
||||
|
@ -64,12 +69,13 @@ async fn delete_document(
|
|||
.open_index(&path.index_uid)
|
||||
.ok_or(Error::index_not_found(&path.index_uid))?;
|
||||
|
||||
let document_id = meilisearch_core::serde::compute_document_id(&path.document_id);
|
||||
|
||||
let mut documents_deletion = index.documents_deletion();
|
||||
documents_deletion.delete_document_by_external_docid(path.document_id.clone());
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| Ok(documents_deletion.finalize(writer)?))?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = documents_deletion.finalize(writer)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
Ok(HttpResponse::Accepted().json(IndexUpdateResponse::with_id(update_id)))
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ struct HealthBody {
|
|||
#[put("/health", wrap = "Authentication::Private")]
|
||||
async fn change_healthyness(
|
||||
data: web::Data<Data>,
|
||||
body: web::Json<HealtBody>,
|
||||
body: web::Json<HealthBody>,
|
||||
) -> Result<HttpResponse, ResponseError> {
|
||||
if body.health {
|
||||
set_healthy(data).await
|
||||
|
|
|
@ -99,7 +99,7 @@ async fn search_with_url_query(
|
|||
let field_ids = prepare_facet_list(&facets, &schema, attrs)?;
|
||||
search_builder.add_facets(field_ids);
|
||||
},
|
||||
None => todo!() /* return Err(FacetCountError::NoFacetSet.into()) */
|
||||
None => return Err(FacetCountError::NoFacetSet.into()),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,12 +39,12 @@ async fn update_all(
|
|||
.open_index(&path.index_uid)
|
||||
.ok_or(Error::index_not_found(&path.index_uid))?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let settings = body
|
||||
.into_inner()
|
||||
.into_update()
|
||||
.map_err(Error::bad_request)?;
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -74,10 +74,8 @@ async fn get_all(
|
|||
let mut synonyms = BTreeMap::new();
|
||||
let index_synonyms = &index.synonyms;
|
||||
for synonym in synonyms_list {
|
||||
let alternative_list = index_synonyms.synonyms(&reader, synonym.as_bytes())?;
|
||||
if let Some(list) = alternative_list {
|
||||
synonyms.insert(synonym, list);
|
||||
}
|
||||
let list = index_synonyms.synonyms(&reader, synonym.as_bytes())?;
|
||||
synonyms.insert(synonym, list);
|
||||
}
|
||||
|
||||
let ranking_rules = index
|
||||
|
@ -209,8 +207,8 @@ async fn update_rules(
|
|||
|
||||
let settings = settings.into_update().map_err(Error::bad_request)?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -235,8 +233,8 @@ async fn delete_rules(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -282,8 +280,8 @@ async fn update_distinct(
|
|||
|
||||
let settings = settings.into_update().map_err(Error::bad_request)?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -308,8 +306,8 @@ async fn delete_distinct(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -357,8 +355,8 @@ async fn update_searchable(
|
|||
|
||||
let settings = settings.into_update().map_err(Error::bad_request)?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -383,8 +381,8 @@ async fn delete_searchable(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -434,8 +432,8 @@ async fn update_displayed(
|
|||
|
||||
let settings = settings.into_update().map_err(Error::bad_request)?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -460,8 +458,8 @@ async fn delete_displayed(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -510,8 +508,8 @@ async fn update_accept_new_fields(
|
|||
|
||||
let settings = settings.into_update().map_err(Error::bad_request)?;
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
|
|
@ -49,8 +49,8 @@ async fn update(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -75,8 +75,8 @@ async fn delete(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
|
|
@ -34,10 +34,8 @@ async fn get(
|
|||
let mut synonyms = IndexMap::new();
|
||||
let index_synonyms = &index.synonyms;
|
||||
for synonym in synonyms_list {
|
||||
let alternative_list = index_synonyms.synonyms(&reader, synonym.as_bytes())?;
|
||||
if let Some(list) = alternative_list {
|
||||
synonyms.insert(synonym, list);
|
||||
}
|
||||
let list = index_synonyms.synonyms(&reader, synonym.as_bytes())?;
|
||||
synonyms.insert(synonym, list);
|
||||
}
|
||||
|
||||
Ok(HttpResponse::Ok().json(synonyms))
|
||||
|
@ -62,8 +60,8 @@ async fn update(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
@ -88,8 +86,8 @@ async fn delete(
|
|||
..SettingsUpdate::default()
|
||||
};
|
||||
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|mut writer| {
|
||||
let update_id = index.settings_update(&mut writer, settings)?;
|
||||
let update_id = data.db.update_write::<_, _, ResponseError>(|writer| {
|
||||
let update_id = index.settings_update(writer, settings)?;
|
||||
Ok(update_id)
|
||||
})?;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue