mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-03-12 11:02:05 +01:00
Add default deserialize value
This commit is contained in:
parent
ea7e299663
commit
d500c7f625
@ -523,7 +523,12 @@ async fn granular_filterable_attributes() {
|
||||
index.update_settings(json!({ "filterableAttributes": [
|
||||
{ "attributePatterns": ["name"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false} } },
|
||||
{ "attributePatterns": ["age"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true} } },
|
||||
{ "attributePatterns": ["id"] }
|
||||
{ "attributePatterns": ["id"] },
|
||||
{ "attributePatterns": ["default-filterable-features-null"], "features": { "facetSearch": true } },
|
||||
{ "attributePatterns": ["default-filterable-features-equality"], "features": { "facetSearch": true, "filter": {"comparison": true} } },
|
||||
{ "attributePatterns": ["default-filterable-features-comparison"], "features": { "facetSearch": true, "filter": {"equality": true} } },
|
||||
{ "attributePatterns": ["default-filterable-features-empty"], "features": { "facetSearch": true, "filter": {} } },
|
||||
{ "attributePatterns": ["default-facet-search"], "features": { "filter": {"equality": true, "comparison": true} } },
|
||||
] })).await;
|
||||
assert_eq!(code, 202);
|
||||
index.wait_task(response.uid()).await.succeeded();
|
||||
@ -567,6 +572,66 @@ async fn granular_filterable_attributes() {
|
||||
"comparison": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributePatterns": [
|
||||
"default-filterable-features-null"
|
||||
],
|
||||
"features": {
|
||||
"facetSearch": true,
|
||||
"filter": {
|
||||
"equality": true,
|
||||
"comparison": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributePatterns": [
|
||||
"default-filterable-features-equality"
|
||||
],
|
||||
"features": {
|
||||
"facetSearch": true,
|
||||
"filter": {
|
||||
"equality": true,
|
||||
"comparison": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributePatterns": [
|
||||
"default-filterable-features-comparison"
|
||||
],
|
||||
"features": {
|
||||
"facetSearch": true,
|
||||
"filter": {
|
||||
"equality": true,
|
||||
"comparison": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributePatterns": [
|
||||
"default-filterable-features-empty"
|
||||
],
|
||||
"features": {
|
||||
"facetSearch": true,
|
||||
"filter": {
|
||||
"equality": true,
|
||||
"comparison": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributePatterns": [
|
||||
"default-facet-search"
|
||||
],
|
||||
"features": {
|
||||
"facetSearch": false,
|
||||
"filter": {
|
||||
"equality": true,
|
||||
"comparison": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
"###);
|
||||
|
@ -71,7 +71,11 @@ impl FilterableAttributesPatterns {
|
||||
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||
#[derive(Default)]
|
||||
pub struct FilterableAttributesFeatures {
|
||||
#[serde(default)]
|
||||
#[deserr(default)]
|
||||
facet_search: bool,
|
||||
#[serde(default)]
|
||||
#[deserr(default)]
|
||||
filter: FilterFeatures,
|
||||
}
|
||||
|
||||
@ -144,11 +148,21 @@ impl<E: DeserializeError> Deserr<E> for FilterableAttributesRule {
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Debug, Deserr, ToSchema)]
|
||||
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
||||
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||
pub struct FilterFeatures {
|
||||
#[serde(default = "default_true")]
|
||||
#[deserr(default = true)]
|
||||
equality: bool,
|
||||
#[serde(default)]
|
||||
#[deserr(default)]
|
||||
comparison: bool,
|
||||
}
|
||||
|
||||
fn default_true() -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
impl FilterFeatures {
|
||||
/// Get the allowed operators for the filter.
|
||||
pub fn allowed_operators(&self) -> Vec<String> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user