From 40441adc17fda78a7c967102dcd2b084e42688fc Mon Sep 17 00:00:00 2001 From: Ashish Tiwari Date: Tue, 21 Mar 2023 20:16:20 +0530 Subject: [PATCH] Add greedy to support both prefix and suffix based matching in meshmodel Signed-off-by: Ashish Tiwari --- models/meshmodel/core/v1alpha1/component.go | 6 +++--- models/meshmodel/core/v1alpha1/relationship.go | 4 ++-- models/meshmodel/registry.go | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/models/meshmodel/core/v1alpha1/component.go b/models/meshmodel/core/v1alpha1/component.go index dd2979c8..8758a683 100644 --- a/models/meshmodel/core/v1alpha1/component.go +++ b/models/meshmodel/core/v1alpha1/component.go @@ -94,11 +94,11 @@ func GetMeshModelComponents(db *database.Handler, f ComponentFilter) (c []Compon Joins("JOIN category_dbs ON model_dbs.category_id = category_dbs.id") // if f.Greedy { if f.Name != "" && f.DisplayName != "" { - finder = finder.Where("component_definition_dbs.kind LIKE ? OR display_name LIKE ?", f.Name+"%", f.DisplayName+"%") + finder = finder.Where("component_definition_dbs.kind LIKE ? OR display_name LIKE ?", "%"+f.Name+"%", f.DisplayName+"%") } else if f.Name != "" { - finder = finder.Where("component_definition_dbs.kind LIKE ?", f.Name+"%") + finder = finder.Where("component_definition_dbs.kind LIKE ?", "%"+f.Name+"%") } else if f.DisplayName != "" { - finder = finder.Where("component_definition_dbs.display_name LIKE ?", f.DisplayName+"%") + finder = finder.Where("component_definition_dbs.display_name LIKE ?", "%"+f.DisplayName+"%") } } else { if f.Name != "" { diff --git a/models/meshmodel/core/v1alpha1/relationship.go b/models/meshmodel/core/v1alpha1/relationship.go index f9a85cb8..7eaa433a 100644 --- a/models/meshmodel/core/v1alpha1/relationship.go +++ b/models/meshmodel/core/v1alpha1/relationship.go @@ -71,9 +71,9 @@ func GetMeshModelRelationship(db *database.Handler, f RelationshipFilter) (r []R Joins("JOIN category_dbs ON model_dbs.category_id = category_dbs.id") // if f.Kind != "" { if f.Greedy { - finder = finder.Where("relationship_definition_dbs.kind LIKE ?", f.Kind) + finder = finder.Where("relationship_definition_dbs.kind LIKE ?", "%"+f.Kind+"%") } else { - finder = finder.Where("relationship_definition_dbs.kind = ?", f.Kind) + finder = finder.Where("relationship_definition_dbs.kind = ?", "%"+f.Kind+"%") } } if f.SubType != "" { diff --git a/models/meshmodel/registry.go b/models/meshmodel/registry.go index ed293b71..5b2013c9 100644 --- a/models/meshmodel/registry.go +++ b/models/meshmodel/registry.go @@ -198,11 +198,11 @@ func (rm *RegistryManager) GetModels(db *database.Handler, f types.Filter) []v1a if mf, ok := f.(*v1alpha1.ModelFilter); ok { if mf.Greedy { if mf.Name != "" && mf.DisplayName != "" { - finder = finder.Where("model_dbs.name LIKE ? OR model_dbs.display_name LIKE ?", mf.Name+"%", mf.DisplayName+"%") + finder = finder.Where("model_dbs.name LIKE ? OR model_dbs.display_name LIKE ?", "%"+mf.Name+"%", "%"+mf.DisplayName+"%") } else if mf.Name != "" { - finder = finder.Where("model_dbs.name LIKE ?", mf.Name+"%") + finder = finder.Where("model_dbs.name LIKE ?", "%"+mf.Name+"%") } else if mf.DisplayName != "" { - finder = finder.Where("model_dbs.display_name LIKE ?", mf.DisplayName+"%") + finder = finder.Where("model_dbs.display_name LIKE ?", "%"+mf.DisplayName+"%") } } else { if mf.Name != "" { @@ -250,7 +250,7 @@ func (rm *RegistryManager) GetCategories(db *database.Handler, f types.Filter) [ if mf, ok := f.(*v1alpha1.CategoryFilter); ok { if mf.Name != "" { if mf.Greedy { - finder = finder.Where("name LIKE ?", mf.Name+"%") + finder = finder.Where("name LIKE ?", "%"+mf.Name+"%") } else { finder = finder.Where("name = ?", mf.Name) }