summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-db/ODLX/ConfigDB.pm37
-rw-r--r--config-db/ODLX/MetaDB/DBI.pm78
2 files changed, 113 insertions, 2 deletions
diff --git a/config-db/ODLX/ConfigDB.pm b/config-db/ODLX/ConfigDB.pm
index 6bf8ab86..93ef14be 100644
--- a/config-db/ODLX/ConfigDB.pm
+++ b/config-db/ODLX/ConfigDB.pm
@@ -232,6 +232,43 @@ sub fetchAllClientIDsOfGroup
return $confDB->{'meta-db'}->fetchAllClientIDsOfGroup($groupID);
}
+sub fetchGroupsByFilter
+{
+ my $confDB = shift;
+ my $filter = shift;
+ my $resultCols = shift;
+
+ my @groups
+ = $confDB->{'meta-db'}->fetchGroupsByFilter($filter, $resultCols);
+ return wantarray() ? @groups : shift @groups;
+}
+
+sub fetchGroupsById
+{
+ my $confDB = shift;
+ my $id = shift;
+
+ my $filter = { 'id' => $id };
+ my @groups = $confDB->{'meta-db'}->fetchGroupsByFilter($filter);
+ return wantarray() ? @groups : shift @groups;
+}
+
+sub fetchAllGroupIDsOfSystem
+{
+ my $confDB = shift;
+ my $systemID = shift;
+
+ return $confDB->{'meta-db'}->fetchAllGroupIDsOfSystem($systemID);
+}
+
+sub fetchAllGroupIDsOfClient
+{
+ my $confDB = shift;
+ my $clientID = shift;
+
+ return $confDB->{'meta-db'}->fetchAllGroupIDsOfClient($clientID);
+}
+
################################################################################
### data manipulation interface
################################################################################
diff --git a/config-db/ODLX/MetaDB/DBI.pm b/config-db/ODLX/MetaDB/DBI.pm
index 9a654744..50c7ecf5 100644
--- a/config-db/ODLX/MetaDB/DBI.pm
+++ b/config-db/ODLX/MetaDB/DBI.pm
@@ -114,6 +114,18 @@ sub fetchAllSystemIDsOfClient
return @rows;
}
+sub fetchAllSystemIDsOfGroup
+{
+ my $self = shift;
+ my $groupID = shift;
+
+ my $sql = qq[
+ SELECT system_id FROM group_system_ref WHERE group_id = '$groupID'
+ ];
+ my @rows = $self->_doSelect($sql, 'system_id');
+ return @rows;
+}
+
sub fetchClientsByFilter
{
my $self = shift;
@@ -143,15 +155,77 @@ sub fetchClientsById
sub fetchAllClientIDsOfSystem
{
my $self = shift;
- my $clientID = shift;
+ my $systemID = shift;
my $sql = qq[
- SELECT client_id FROM client_system_ref WHERE system_id = '$clientID'
+ SELECT client_id FROM client_system_ref WHERE system_id = '$systemID'
];
my @rows = $self->_doSelect($sql, 'system_id');
return @rows;
}
+sub fetchAllClientIDsOfGroup
+{
+ my $self = shift;
+ my $groupID = shift;
+
+ my $sql = qq[
+ SELECT client_id FROM group_client_ref WHERE group_id = '$groupID'
+ ];
+ my @rows = $self->_doSelect($sql, 'system_id');
+ return @rows;
+}
+
+sub fetchGroupsByFilter
+{
+ my $self = shift;
+ my $filter = shift;
+ my $resultCols = shift;
+
+ $resultCols = '*' unless (defined $resultCols);
+ my $sql = "SELECT $resultCols FROM group";
+ my $connector;
+ foreach my $col (keys %$filter) {
+ $connector = !defined $connector ? 'WHERE' : 'AND';
+ $sql .= " $connector $col = '$filter->{$col}'";
+ }
+ my @rows = $self->_doSelect($sql);
+ return @rows;
+}
+
+sub fetchGroupsById
+{
+ my $self = shift;
+ my $id = shift;
+ my $resultCols = shift;
+
+ return $self->fetchGroupsByFilter({'id' => $id}, $resultCols);
+}
+
+sub fetchAllGroupIDsOfSystem
+{
+ my $self = shift;
+ my $systemID = shift;
+
+ my $sql = qq[
+ SELECT group_id FROM group_system_ref WHERE system_id = '$systemID'
+ ];
+ my @rows = $self->_doSelect($sql, 'group_id');
+ return @rows;
+}
+
+sub fetchAllGroupIDsOfClient
+{
+ my $self = shift;
+ my $clientID = shift;
+
+ my $sql = qq[
+ SELECT group_id FROM group_client_ref WHERE client_id = '$clientID'
+ ];
+ my @rows = $self->_doSelect($sql, 'group_id');
+ return @rows;
+}
+
################################################################################
### data manipulation functions
################################################################################