diff --git a/lib/NGCP/BulkProcessor/Dao/Trunk/kamailio/voicemail_spool.pm b/lib/NGCP/BulkProcessor/Dao/Trunk/kamailio/voicemail_spool.pm new file mode 100644 index 0000000..5e1b9dd --- /dev/null +++ b/lib/NGCP/BulkProcessor/Dao/Trunk/kamailio/voicemail_spool.pm @@ -0,0 +1,137 @@ +package NGCP::BulkProcessor::Dao::Trunk::kamailio::voicemail_spool; +use strict; + +## no critic + +use NGCP::BulkProcessor::Logging qw( + getlogger + rowinserted +); + +use NGCP::BulkProcessor::ConnectorPool qw( + get_kamailio_db +); + +use NGCP::BulkProcessor::SqlProcessor qw( + checktableinfo + insert_record + copy_row +); +use NGCP::BulkProcessor::SqlRecord qw(); + +require Exporter; +our @ISA = qw(Exporter NGCP::BulkProcessor::SqlRecord); +our @EXPORT_OK = qw( + gettablename + check_table + + insert_row +); + +my $tablename = 'voicemail_spool'; +my $get_db = \&get_kamailio_db; + +my $expected_fieldnames = [ + 'id', + 'msgnum', + 'dir', + 'context', + 'macrocontext', + 'callerid', + 'origtime', + 'duration', + 'mailboxuser', + 'mailboxcontext', + 'recording', + 'flag', + 'msg_id', + 'call_id', +]; + +my $indexes = {}; + +my $insert_unique_fields = []; + +sub new { + + my $class = shift; + my $self = NGCP::BulkProcessor::SqlRecord->new($class,$get_db, + $tablename,$expected_fieldnames,$indexes); + + copy_row($self,shift,$expected_fieldnames); + + return $self; + +} + +sub insert_row { + + my $db = &$get_db(); + my $xa_db = shift // $db; + if ('HASH' eq ref $_[0]) { + my ($data,$insert_ignore) = @_; + check_table(); + if (insert_record($db,$xa_db,__PACKAGE__,$data,$insert_ignore,$insert_unique_fields)) { + return $xa_db->db_last_insert_id(); + } + } else { + my %params = @_; + my ($mailboxuser, + $msgnum) = @params{qw/ + mailboxuser + msgnum + /}; + + if ($xa_db->db_do('INSERT INTO ' . $db->tableidentifier($tablename) . ' (' . + $db->columnidentifier('msgnum') . ', ' . + $db->columnidentifier('mailboxuser') . ') VALUES (' . + '?, ' . + '?)', + $msgnum, + $mailboxuser + )) { + rowinserted($db,$tablename,getlogger(__PACKAGE__)); + return $xa_db->db_last_insert_id(); + } + } + return undef; + +} + +sub buildrecords_fromrows { + + my ($rows,$load_recursive) = @_; + + my @records = (); + my $record; + + if (defined $rows and ref $rows eq 'ARRAY') { + foreach my $row (@$rows) { + $record = __PACKAGE__->new($row); + + # transformations go here ... + + push @records,$record; + } + } + + return \@records; + +} + +sub gettablename { + + return $tablename; + +} + +sub check_table { + + return checktableinfo($get_db, + __PACKAGE__,$tablename, + $expected_fieldnames, + $indexes); + +} + +1; diff --git a/lib/NGCP/BulkProcessor/Dao/mr103/openser/voicemail_users.pm b/lib/NGCP/BulkProcessor/Dao/mr103/openser/voicemail_users.pm index f9616f8..0b2c53c 100644 --- a/lib/NGCP/BulkProcessor/Dao/mr103/openser/voicemail_users.pm +++ b/lib/NGCP/BulkProcessor/Dao/mr103/openser/voicemail_users.pm @@ -23,6 +23,8 @@ use NGCP::BulkProcessor::SqlProcessor qw( ); use NGCP::BulkProcessor::SqlRecord qw(); +use NGCP::BulkProcessor::Dao::mr103::openser::voicemail_spool qw(); + require Exporter; our @ISA = qw(Exporter NGCP::BulkProcessor::SqlRecord); our @EXPORT_OK = qw( @@ -160,6 +162,7 @@ sub source_buildrecords_fromrows { foreach my $field (keys %$record) { $record->{$field} = $recoder->recode($record->{$field}) if $record->{field}; } + $record->{voicemail_spool} = NGCP::BulkProcessor::Dao::mr103::openser::voicemail_spool::source_findby_mailboxuser($source_dbs,$record->{mailbox}); push @records,$record; } diff --git a/lib/NGCP/BulkProcessor/Dao/mr103/provisioning/voip_dbaliases.pm b/lib/NGCP/BulkProcessor/Dao/mr103/provisioning/voip_dbaliases.pm index c454681..4d0ccd7 100644 --- a/lib/NGCP/BulkProcessor/Dao/mr103/provisioning/voip_dbaliases.pm +++ b/lib/NGCP/BulkProcessor/Dao/mr103/provisioning/voip_dbaliases.pm @@ -19,8 +19,6 @@ use NGCP::BulkProcessor::SqlProcessor qw( ); use NGCP::BulkProcessor::SqlRecord qw(); -use NGCP::BulkProcessor::Dao::mr103::openser::voicemail_spool qw(); - require Exporter; our @ISA = qw(Exporter NGCP::BulkProcessor::SqlRecord); our @EXPORT_OK = qw( @@ -114,8 +112,6 @@ sub source_buildrecords_fromrows { $record = __PACKAGE__->source_new($source_dbs->{provisioning_db},$row); # transformations go here ... - - $record->{voicemail_spool} = NGCP::BulkProcessor::Dao::mr103::openser::voicemail_spool::source_findby_mailboxuser($source_dbs,$record->{username}); #delete $record->{domain_id}; #delete $record->{subscriber_id}; #delete $record->{id};