mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-26 03:55:07 +08:00
Handle star in attributes_to_retrieve
This commit is contained in:
parent
7ce74f95a2
commit
8eceba98d3
@ -108,9 +108,18 @@ async fn get_all_documents(
|
|||||||
params: web::Query<BrowseQuery>,
|
params: web::Query<BrowseQuery>,
|
||||||
) -> Result<HttpResponse, ResponseError> {
|
) -> Result<HttpResponse, ResponseError> {
|
||||||
let attributes_to_retrieve = params
|
let attributes_to_retrieve = params
|
||||||
.attributes_to_retrieve
|
.attributes_to_retrieve
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|attrs| attrs.split(',').map(String::from).collect::<Vec<_>>());
|
.and_then(|attrs| {
|
||||||
|
let mut names = Vec::new();
|
||||||
|
for name in attrs.split(',').map(String::from) {
|
||||||
|
if name == "*" {
|
||||||
|
return None
|
||||||
|
}
|
||||||
|
names.push(name);
|
||||||
|
}
|
||||||
|
Some(names)
|
||||||
|
});
|
||||||
|
|
||||||
match data
|
match data
|
||||||
.retrieve_documents(
|
.retrieve_documents(
|
||||||
|
@ -182,6 +182,23 @@ async fn test_get_all_documents_attributes_to_retrieve() {
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let (response, code) = index
|
||||||
|
.get_all_documents(GetAllDocumentsOptions {
|
||||||
|
attributes_to_retrieve: Some(vec!["wrong"]),
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
assert_eq!(response.as_array().unwrap().len(), 20);
|
||||||
|
assert_eq!(
|
||||||
|
response.as_array().unwrap()[0]
|
||||||
|
.as_object()
|
||||||
|
.unwrap()
|
||||||
|
.keys()
|
||||||
|
.count(),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
let (response, code) = index
|
let (response, code) = index
|
||||||
.get_all_documents(GetAllDocumentsOptions {
|
.get_all_documents(GetAllDocumentsOptions {
|
||||||
attributes_to_retrieve: Some(vec!["name", "tags"]),
|
attributes_to_retrieve: Some(vec!["name", "tags"]),
|
||||||
@ -198,6 +215,40 @@ async fn test_get_all_documents_attributes_to_retrieve() {
|
|||||||
.count(),
|
.count(),
|
||||||
2
|
2
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let (response, code) = index
|
||||||
|
.get_all_documents(GetAllDocumentsOptions {
|
||||||
|
attributes_to_retrieve: Some(vec!["*"]),
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
assert_eq!(response.as_array().unwrap().len(), 20);
|
||||||
|
assert_eq!(
|
||||||
|
response.as_array().unwrap()[0]
|
||||||
|
.as_object()
|
||||||
|
.unwrap()
|
||||||
|
.keys()
|
||||||
|
.count(),
|
||||||
|
16
|
||||||
|
);
|
||||||
|
|
||||||
|
let (response, code) = index
|
||||||
|
.get_all_documents(GetAllDocumentsOptions {
|
||||||
|
attributes_to_retrieve: Some(vec!["*", "wrong"]),
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
assert_eq!(code, 200);
|
||||||
|
assert_eq!(response.as_array().unwrap().len(), 20);
|
||||||
|
assert_eq!(
|
||||||
|
response.as_array().unwrap()[0]
|
||||||
|
.as_object()
|
||||||
|
.unwrap()
|
||||||
|
.keys()
|
||||||
|
.count(),
|
||||||
|
16
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
|
Loading…
Reference in New Issue
Block a user