mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-26 21:46:27 +00:00 
			
		
		
		
	fix the error code in case of not filterable attributes on the get / delete documents by filter routes
This commit is contained in:
		| @@ -540,7 +540,12 @@ fn retrieve_documents<S: AsRef<str>>( | ||||
|     }; | ||||
|  | ||||
|     let candidates = if let Some(filter) = filter { | ||||
|         filter.evaluate(&rtxn, index)? | ||||
|         filter.evaluate(&rtxn, index).map_err(|err| match err { | ||||
|             milli::Error::UserError(milli::UserError::InvalidFilter(_)) => { | ||||
|                 ResponseError::from_msg(err.to_string(), Code::InvalidDocumentFilter) | ||||
|             } | ||||
|             e => e.into(), | ||||
|         })? | ||||
|     } else { | ||||
|         index.documents_ids(&rtxn)? | ||||
|     }; | ||||
|   | ||||
| @@ -180,9 +180,9 @@ async fn get_all_documents_bad_filter() { | ||||
|     snapshot!(json_string!(response), @r###" | ||||
|     { | ||||
|       "message": "Attribute `doggo` is not filterable. This index does not have configured filterable attributes.\n1:6 doggo=bernese", | ||||
|       "code": "invalid_search_filter", | ||||
|       "code": "invalid_document_filter", | ||||
|       "type": "invalid_request", | ||||
|       "link": "https://docs.meilisearch.com/errors#invalid_search_filter" | ||||
|       "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|     } | ||||
|     "###); | ||||
| } | ||||
| @@ -630,9 +630,9 @@ async fn delete_document_by_filter() { | ||||
|       }, | ||||
|       "error": { | ||||
|         "message": "Attribute `doggo` is not filterable. This index does not have configured filterable attributes.\n1:6 doggo = bernese", | ||||
|         "code": "invalid_search_filter", | ||||
|         "code": "invalid_document_filter", | ||||
|         "type": "invalid_request", | ||||
|         "link": "https://docs.meilisearch.com/errors#invalid_search_filter" | ||||
|         "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|       }, | ||||
|       "duration": "[duration]", | ||||
|       "enqueuedAt": "[date]", | ||||
| @@ -664,9 +664,9 @@ async fn delete_document_by_filter() { | ||||
|       }, | ||||
|       "error": { | ||||
|         "message": "Attribute `catto` is not filterable. Available filterable attributes are: `doggo`.\n1:6 catto = jorts", | ||||
|         "code": "invalid_search_filter", | ||||
|         "code": "invalid_document_filter", | ||||
|         "type": "invalid_request", | ||||
|         "link": "https://docs.meilisearch.com/errors#invalid_search_filter" | ||||
|         "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|       }, | ||||
|       "duration": "[duration]", | ||||
|       "enqueuedAt": "[date]", | ||||
| @@ -748,4 +748,27 @@ async fn fetch_document_by_filter() { | ||||
|       "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|     } | ||||
|     "###); | ||||
|  | ||||
|     let (response, code) = index.get_document_by_filter(json!({ "filter": "cool doggo" })).await; | ||||
|     snapshot!(code, @"400 Bad Request"); | ||||
|     snapshot!(json_string!(response), @r###" | ||||
|     { | ||||
|       "message": "Was expecting an operation `=`, `!=`, `>=`, `>`, `<=`, `<`, `IN`, `NOT IN`, `TO`, `EXISTS`, `NOT EXISTS`, `IS NULL`, `IS NOT NULL`, `IS EMPTY`, `IS NOT EMPTY`, `_geoRadius`, or `_geoBoundingBox` at `cool doggo`.\n1:11 cool doggo", | ||||
|       "code": "invalid_document_filter", | ||||
|       "type": "invalid_request", | ||||
|       "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|     } | ||||
|     "###); | ||||
|  | ||||
|     let (response, code) = | ||||
|         index.get_document_by_filter(json!({ "filter": "doggo = bernese" })).await; | ||||
|     snapshot!(code, @"400 Bad Request"); | ||||
|     snapshot!(json_string!(response), @r###" | ||||
|     { | ||||
|       "message": "Attribute `doggo` is not filterable. Available filterable attributes are: `color`.\n1:6 doggo = bernese", | ||||
|       "code": "invalid_document_filter", | ||||
|       "type": "invalid_request", | ||||
|       "link": "https://docs.meilisearch.com/errors#invalid_document_filter" | ||||
|     } | ||||
|     "###); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user