From 34573359cb5f928807fa5bb37c896ed077b424c5 Mon Sep 17 00:00:00 2001 From: Scott Merchant Date: Mon, 10 Jun 2024 16:27:55 +0930 Subject: [PATCH] clean up CreateMeilisearchFilter --- .../FilterExtensionMethods.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/back/src/Kyoo.Meilisearch/FilterExtensionMethods.cs b/back/src/Kyoo.Meilisearch/FilterExtensionMethods.cs index b9a55503..c4f48b17 100644 --- a/back/src/Kyoo.Meilisearch/FilterExtensionMethods.cs +++ b/back/src/Kyoo.Meilisearch/FilterExtensionMethods.cs @@ -15,13 +15,13 @@ internal static class FilterExtensionMethods => $"({and.First.CreateMeilisearchFilter()}) AND ({and.Second.CreateMeilisearchFilter()})", Filter.Or or => $"({or.First.CreateMeilisearchFilter()}) OR ({or.Second.CreateMeilisearchFilter()})", - Filter.Gt gt => $"{CamelCase.ConvertName(gt.Property)} > {gt.Value.InMeilsearchFilterFormat()}", - Filter.Lt lt => $"{CamelCase.ConvertName(lt.Property)} < {lt.Value.InMeilsearchFilterFormat()}", - Filter.Ge ge => $"{CamelCase.ConvertName(ge.Property)} >= {ge.Value.InMeilsearchFilterFormat()}", - Filter.Le le => $"{CamelCase.ConvertName(le.Property)} <= {le.Value.InMeilsearchFilterFormat()}", - Filter.Eq eq => $"{CamelCase.ConvertName(eq.Property)} = {eq.Value.InMeilsearchFilterFormat()}", - Filter.Has has => $"{CamelCase.ConvertName(has.Property)} = {has.Value.InMeilsearchFilterFormat()}", - Filter.Ne ne => $"{CamelCase.ConvertName(ne.Property)} != {ne.Value.InMeilsearchFilterFormat()}", + Filter.Gt gt => CreateBasicFilterString(gt.Property, ">", gt.Value), + Filter.Lt lt => CreateBasicFilterString(lt.Property, "<", lt.Value), + Filter.Ge ge => CreateBasicFilterString(ge.Property, ">=", ge.Value), + Filter.Le le => CreateBasicFilterString(le.Property, "<=", le.Value), + Filter.Eq eq => CreateBasicFilterString(eq.Property, "=", eq.Value), + Filter.Has has => CreateBasicFilterString(has.Property, "=", has.Value), + Filter.Ne ne => CreateBasicFilterString(ne.Property, "!=", ne.Value), Filter.Not not => $"NOT ({not.Filter.CreateMeilisearchFilter()})", Filter.CmpRandom => throw new ValidationException("Random comparison is not supported."), @@ -29,6 +29,11 @@ internal static class FilterExtensionMethods }; } + private static string CreateBasicFilterString(string property, string @operator, object? value) + { + return $"{CamelCase.ConvertName(property)} {@operator} {value.InMeilisearchFormat()}"; + } + private static object? InMeilsearchFilterFormat(this object? value) { return value switch