mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-30 00:55:00 +08:00
Merge #104
104: Update all the response format (issue #64) r=MarinPostma a=irevoire closes #64 Co-authored-by: Irevoire <tamo@meilisearch.com> Co-authored-by: tamo <tamo@meilisearch.com>
This commit is contained in:
commit
6cb8052d3d
@ -43,6 +43,9 @@ pub struct Settings {
|
|||||||
skip_serializing_if = "Option::is_none"
|
skip_serializing_if = "Option::is_none"
|
||||||
)]
|
)]
|
||||||
pub ranking_rules: Option<Option<Vec<String>>>,
|
pub ranking_rules: Option<Option<Vec<String>>>,
|
||||||
|
|
||||||
|
// TODO we are missing the stopWords, synonyms and distinctAttribute for the GET settings
|
||||||
|
// request
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Settings {
|
impl Settings {
|
||||||
|
@ -84,7 +84,9 @@ async fn delete_document(
|
|||||||
.delete_documents(path.index_uid.clone(), vec![path.document_id.clone()])
|
.delete_documents(path.index_uid.clone(), vec![path.document_id.clone()])
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(result) => Ok(HttpResponse::Ok().json(result)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -119,7 +121,7 @@ async fn get_all_documents(
|
|||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(docs) => Ok(HttpResponse::Ok().json(docs)),
|
Ok(documents) => Ok(HttpResponse::Ok().json(documents)),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -133,6 +135,7 @@ struct UpdateDocumentsQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Route used when the payload type is "application/json"
|
/// Route used when the payload type is "application/json"
|
||||||
|
/// Used to add or replace documents
|
||||||
#[post("/indexes/{index_uid}/documents", wrap = "Authentication::Private")]
|
#[post("/indexes/{index_uid}/documents", wrap = "Authentication::Private")]
|
||||||
async fn add_documents(
|
async fn add_documents(
|
||||||
data: web::Data<Data>,
|
data: web::Data<Data>,
|
||||||
@ -151,7 +154,9 @@ async fn add_documents(
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
match addition_result {
|
match addition_result {
|
||||||
Ok(update) => Ok(HttpResponse::Ok().json(update)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -200,7 +205,9 @@ async fn update_documents(
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
match addition_result {
|
match addition_result {
|
||||||
Ok(update) => Ok(HttpResponse::Ok().json(update)),
|
Ok(update) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -226,20 +233,25 @@ async fn delete_documents(
|
|||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
match data.delete_documents(path.index_uid.clone(), ids).await {
|
match data.delete_documents(path.index_uid.clone(), ids).await {
|
||||||
Ok(result) => Ok(HttpResponse::Ok().json(result)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// delete all documents
|
||||||
#[delete("/indexes/{index_uid}/documents", wrap = "Authentication::Private")]
|
#[delete("/indexes/{index_uid}/documents", wrap = "Authentication::Private")]
|
||||||
async fn clear_all_documents(
|
async fn clear_all_documents(
|
||||||
data: web::Data<Data>,
|
data: web::Data<Data>,
|
||||||
path: web::Path<IndexParam>,
|
path: web::Path<IndexParam>,
|
||||||
) -> Result<HttpResponse, ResponseError> {
|
) -> Result<HttpResponse, ResponseError> {
|
||||||
match data.clear_documents(path.index_uid.clone()).await {
|
match data.clear_documents(path.index_uid.clone()).await {
|
||||||
Ok(update) => Ok(HttpResponse::Ok().json(update)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,9 @@ macro_rules! make_setting_route {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
match data.update_settings(index_uid.into_inner(), settings, false).await {
|
match data.update_settings(index_uid.into_inner(), settings, false).await {
|
||||||
Ok(update_status) => Ok(HttpResponse::Ok().json(update_status)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -46,7 +48,9 @@ macro_rules! make_setting_route {
|
|||||||
};
|
};
|
||||||
|
|
||||||
match data.update_settings(index_uid.into_inner(), settings, true).await {
|
match data.update_settings(index_uid.into_inner(), settings, true).await {
|
||||||
Ok(update_status) => Ok(HttpResponse::Ok().json(update_status)),
|
Ok(update_status) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_status.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -131,7 +135,9 @@ async fn update_all(
|
|||||||
.update_settings(index_uid.into_inner(), body.into_inner(), true)
|
.update_settings(index_uid.into_inner(), body.into_inner(), true)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(update_result) => Ok(HttpResponse::Accepted().json(update_result)),
|
Ok(update_result) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_result.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
@ -161,7 +167,9 @@ async fn delete_all(
|
|||||||
.update_settings(index_uid.into_inner(), settings, false)
|
.update_settings(index_uid.into_inner(), settings, false)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(update_result) => Ok(HttpResponse::Accepted().json(update_result)),
|
Ok(update_result) => {
|
||||||
|
Ok(HttpResponse::Accepted().json(serde_json::json!({ "updateId": update_result.id() })))
|
||||||
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
Ok(HttpResponse::BadRequest().json(serde_json::json!({ "error": e.to_string() })))
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ impl Index<'_> {
|
|||||||
.service
|
.service
|
||||||
.post_str(url, include_str!("../assets/test_set.json"))
|
.post_str(url, include_str!("../assets/test_set.json"))
|
||||||
.await;
|
.await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
let update_id = response["updateId"].as_i64().unwrap();
|
let update_id = response["updateId"].as_i64().unwrap();
|
||||||
self.wait_update_id(update_id as u64).await;
|
self.wait_update_id(update_id as u64).await;
|
||||||
update_id as u64
|
update_id as u64
|
||||||
|
@ -16,13 +16,16 @@ async fn add_documents_no_index_creation() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (response, code) = index.add_documents(documents, None).await;
|
let (response, code) = index.add_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
assert_eq!(response["status"], "pending");
|
|
||||||
assert_eq!(response["updateId"], 0);
|
assert_eq!(response["updateId"], 0);
|
||||||
assert_eq!(response["meta"]["type"], "DocumentsAddition");
|
/*
|
||||||
assert_eq!(response["meta"]["format"], "Json");
|
* currently we don’t check these field to stay ISO with meilisearch
|
||||||
assert_eq!(response["meta"]["primaryKey"], Value::Null);
|
* assert_eq!(response["status"], "pending");
|
||||||
assert!(response.get("enqueuedAt").is_some());
|
* assert_eq!(response["meta"]["type"], "DocumentsAddition");
|
||||||
|
* assert_eq!(response["meta"]["format"], "Json");
|
||||||
|
* assert_eq!(response["meta"]["primaryKey"], Value::Null);
|
||||||
|
* assert!(response.get("enqueuedAt").is_some());
|
||||||
|
*/
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -75,7 +78,7 @@ async fn document_addition_with_primary_key() {
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
let (_response, code) = index.add_documents(documents, Some("primary")).await;
|
let (_response, code) = index.add_documents(documents, Some("primary")).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -102,7 +105,7 @@ async fn document_update_with_primary_key() {
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
let (_response, code) = index.update_documents(documents, Some("primary")).await;
|
let (_response, code) = index.update_documents(documents, Some("primary")).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -131,7 +134,7 @@ async fn add_documents_with_primary_key_and_primary_key_already_exists() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.add_documents(documents, Some("id")).await;
|
let (_response, code) = index.add_documents(documents, Some("id")).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -160,7 +163,7 @@ async fn update_documents_with_primary_key_and_primary_key_already_exists() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.update_documents(documents, Some("id")).await;
|
let (_response, code) = index.update_documents(documents, Some("id")).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (response, code) = index.get_update(0).await;
|
let (response, code) = index.get_update(0).await;
|
||||||
@ -187,7 +190,7 @@ async fn replace_document() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.add_documents(documents, None).await;
|
let (_response, code) = index.add_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -199,7 +202,7 @@ async fn replace_document() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.add_documents(documents, None).await;
|
let (_response, code) = index.add_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(1).await;
|
index.wait_update_id(1).await;
|
||||||
|
|
||||||
@ -246,7 +249,7 @@ async fn update_document() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.add_documents(documents, None).await;
|
let (_response, code) = index.add_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
|
|
||||||
@ -258,7 +261,7 @@ async fn update_document() {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
let (_response, code) = index.update_documents(documents, None).await;
|
let (_response, code) = index.update_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
index.wait_update_id(1).await;
|
index.wait_update_id(1).await;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ async fn delete_one_unexisting_document() {
|
|||||||
let index = server.index("test");
|
let index = server.index("test");
|
||||||
index.create(None).await;
|
index.create(None).await;
|
||||||
let (_response, code) = index.delete_document(0).await;
|
let (_response, code) = index.delete_document(0).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
let update = index.wait_update_id(0).await;
|
let update = index.wait_update_id(0).await;
|
||||||
assert_eq!(update["status"], "processed");
|
assert_eq!(update["status"], "processed");
|
||||||
}
|
}
|
||||||
@ -29,7 +29,7 @@ async fn delete_one_document() {
|
|||||||
.await;
|
.await;
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (_response, code) = server.index("test").delete_document(0).await;
|
let (_response, code) = server.index("test").delete_document(0).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
index.wait_update_id(1).await;
|
index.wait_update_id(1).await;
|
||||||
|
|
||||||
let (_response, code) = index.get_document(0, None).await;
|
let (_response, code) = index.get_document(0, None).await;
|
||||||
@ -55,7 +55,7 @@ async fn clear_all_documents() {
|
|||||||
.await;
|
.await;
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (_response, code) = index.clear_all_documents().await;
|
let (_response, code) = index.clear_all_documents().await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
let _update = index.wait_update_id(1).await;
|
let _update = index.wait_update_id(1).await;
|
||||||
let (response, code) = index
|
let (response, code) = index
|
||||||
@ -72,7 +72,7 @@ async fn clear_all_documents_empty_index() {
|
|||||||
index.create(None).await;
|
index.create(None).await;
|
||||||
|
|
||||||
let (_response, code) = index.clear_all_documents().await;
|
let (_response, code) = index.clear_all_documents().await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
let _update = index.wait_update_id(0).await;
|
let _update = index.wait_update_id(0).await;
|
||||||
let (response, code) = index
|
let (response, code) = index
|
||||||
@ -96,7 +96,7 @@ async fn delete_batch() {
|
|||||||
index.add_documents(json!([{ "id": 1, "content": "foobar" }, { "id": 0, "content": "foobar" }, { "id": 3, "content": "foobar" }]), Some("id")).await;
|
index.add_documents(json!([{ "id": 1, "content": "foobar" }, { "id": 0, "content": "foobar" }, { "id": 3, "content": "foobar" }]), Some("id")).await;
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (_response, code) = index.delete_batch(vec![1, 0]).await;
|
let (_response, code) = index.delete_batch(vec![1, 0]).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
let _update = index.wait_update_id(1).await;
|
let _update = index.wait_update_id(1).await;
|
||||||
let (response, code) = index
|
let (response, code) = index
|
||||||
@ -114,7 +114,7 @@ async fn delete_no_document_batch() {
|
|||||||
index.add_documents(json!([{ "id": 1, "content": "foobar" }, { "id": 0, "content": "foobar" }, { "id": 3, "content": "foobar" }]), Some("id")).await;
|
index.add_documents(json!([{ "id": 1, "content": "foobar" }, { "id": 0, "content": "foobar" }, { "id": 3, "content": "foobar" }]), Some("id")).await;
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (_response, code) = index.delete_batch(vec![]).await;
|
let (_response, code) = index.delete_batch(vec![]).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
|
|
||||||
let _update = index.wait_update_id(1).await;
|
let _update = index.wait_update_id(1).await;
|
||||||
let (response, code) = index
|
let (response, code) = index
|
||||||
|
@ -33,7 +33,7 @@ async fn get_document() {
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
let (_, code) = index.add_documents(documents, None).await;
|
let (_, code) = index.add_documents(documents, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 202);
|
||||||
index.wait_update_id(0).await;
|
index.wait_update_id(0).await;
|
||||||
let (response, code) = index.get_document(0, None).await;
|
let (response, code) = index.get_document(0, None).await;
|
||||||
assert_eq!(code, 200);
|
assert_eq!(code, 200);
|
||||||
|
@ -142,7 +142,7 @@ macro_rules! test_setting_routes {
|
|||||||
.map(|c| if c == '_' { '-' } else { c })
|
.map(|c| if c == '_' { '-' } else { c })
|
||||||
.collect::<String>());
|
.collect::<String>());
|
||||||
let (response, code) = server.service.post(url, serde_json::Value::Null).await;
|
let (response, code) = server.service.post(url, serde_json::Value::Null).await;
|
||||||
assert_eq!(code, 200, "{}", response);
|
assert_eq!(code, 202, "{}", response);
|
||||||
let (response, code) = server.index("test").get().await;
|
let (response, code) = server.index("test").get().await;
|
||||||
assert_eq!(code, 200, "{}", response);
|
assert_eq!(code, 200, "{}", response);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user