diff --git a/lib/NGCP/BulkProcessor/Dao/Trunk/provisioning/voip_subscribers.pm b/lib/NGCP/BulkProcessor/Dao/Trunk/provisioning/voip_subscribers.pm index dc99770..fd85b38 100644 --- a/lib/NGCP/BulkProcessor/Dao/Trunk/provisioning/voip_subscribers.pm +++ b/lib/NGCP/BulkProcessor/Dao/Trunk/provisioning/voip_subscribers.pm @@ -30,6 +30,7 @@ our @EXPORT_OK = qw( findby_uuid findby_id + findby_domain_usernames ); my $tablename = 'voip_subscribers'; @@ -72,6 +73,27 @@ sub new { } +sub findby_domain_usernames { + + my ($xa_db,$domain,$usernames,$load_recursive) = @_; + + check_table(); + my $db = &$get_db(); + $xa_db //= $db; + my $table = $db->tableidentifier($tablename); + + my $stmt = 'SELECT s.* FROM ' . $table . ' s join provisioning.domains d on s.domain_id = d.id WHERE d.domain = ?'; + my @params = ($domain); + if (defined $usernames and 'ARRAY' eq ref $usernames) { + $stmt .= ' AND ' . $db->columnidentifier('username') . ' IN (' . substr(',?' x scalar @$usernames,1) . ')'; + push(@params,@$usernames); + } + my $rows = $xa_db->db_get_all_arrayref($stmt,@params); + + return buildrecords_fromrows($rows,$load_recursive); + +} + sub findby_uuid { my ($xa_db,$uuid,$load_recursive) = @_;