From 89b6390f711de18daaffa4a9054fdc44d5a7bf7e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Apr 26 2015 08:14:47 +0000 Subject: Add method in the internal library to search groups --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 2878d75..4e54e67 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1742,3 +1742,35 @@ def get_group_types(session, grp_type=None): ) return query.all() + + +def search_groups(session, pattern=None, grp_name=None, grp_type=None): + ''' Return the groups based on the criteria specified. + + ''' + query = session.query( + model.PagureGroup + ).order_by( + model.PagureGroup.grp_type + ) + + if pattern: + pattern = pattern.replace('*', '%') + query = query.filter( + model.PagureGroup.group_name.like(pattern) + ) + + if grp_name: + query = query.filter( + model.PagureGroup.group_name == grp_name + ) + + if grp_type: + query = query.filter( + model.PagureGroup.grp_type == grp_type + ) + + if grp_name: + return query.first() + else: + return query.all()