diff --git a/fixtures/filter.json b/fixtures/filter.json index 0cafcc0..625e50b 100644 --- a/fixtures/filter.json +++ b/fixtures/filter.json @@ -70,6 +70,10 @@ "type": "string", "format": "date-time" }, + "uuid_field": { + "type": "string", + "format": "uuid" + }, "tags": { "type": "array", "items": { @@ -181,6 +185,17 @@ ] } } + }, + "uuid.condition": { + "type": "condition", + "properties": { + "$eq": { + "type": [ + "string", + "null" + ] + } + } } } } @@ -244,6 +259,7 @@ "billing_address", "gender", "birth_date", + "uuid_field", "tags", "ad_hoc", "$and", @@ -258,6 +274,7 @@ "billing_address", "gender", "birth_date", + "uuid_field", "tags", "ad_hoc", "$and", @@ -278,6 +295,7 @@ "billing_address", "gender", "birth_date", + "uuid_field", "tags", "ad_hoc", "$and", @@ -325,6 +343,12 @@ "null" ] }, + "uuid_field": { + "type": [ + "uuid.condition", + "null" + ] + }, "first_name": { "type": [ "string.condition", @@ -396,6 +420,7 @@ "string.condition": {}, "integer.condition": {}, "date.condition": {}, + "uuid.condition": {}, "search": {}, "search.filter": { "type": "filter", diff --git a/src/database/compile/filter.rs b/src/database/compile/filter.rs index d889c0f..6a05772 100644 --- a/src/database/compile/filter.rs +++ b/src/database/compile/filter.rs @@ -141,6 +141,8 @@ impl Schema { if let Some(fmt) = &schema.obj.format { if fmt == "date-time" { return Some(vec!["date.condition".to_string()]); + } else if fmt == "uuid" { + return Some(vec!["uuid.condition".to_string()]); } } Some(vec!["string.condition".to_string()])