You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/sandbox/subscribers_emails.pl

55 lines
1.9 KiB

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use NGCP::Schema;
use NGCP::Panel::Utils::Email;
use UUID qw/generate unparse/;
use NGCP::Panel::Utils::DateTime;
use Test::MockObject;
use Log::Log4perl;
use Safe::Isa qw($_isa);
my $schema = NGCP::Schema->connect();
Log::Log4perl::init('/etc/ngcp-panel/logging.conf');
my $logger = Log::Log4perl->get_logger('NGCP::Panel');
my $c_mock = Test::MockObject->new();
my $user_mock = Test::MockObject->new();
$user_mock->set_always( 'roles' => 'reseller' );
$c_mock->set_always( 'log' => $logger )->set_always( 'model' => $schema )->set_always( 'user' => $user_mock );
my $contract_rs = $schema->resultset('contracts')->search( {
#'me.create_timestamp' => { '>' => '2017-01-01' },
'me.id' => { -in => [2858,2860,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895] },
},
);
foreach my $contract($contract_rs->all){
my $subscribers_rs = $schema->resultset('voip_subscribers')->search( {
'me.status' => { '!=' => 'terminated' },
'me.contract_id' => $contract->id,
}
);
foreach my $billing_subscriber ($subscribers_rs->all){
if($contract->subscriber_email_template_id) {
my ($uuid_bin, $uuid_string);
UUID::generate($uuid_bin);
UUID::unparse($uuid_bin, $uuid_string);
$billing_subscriber->password_resets->create({
uuid => $uuid_string,
# for new subs, let the link be valid for a year
timestamp => NGCP::Panel::Utils::DateTime::current_local->epoch + 31536000,
});
#my $url = $c_mock->uri_for_action('/subscriber/recover_webpassword')->as_string . '?uuid=' . $uuid_string;
my $url = 'https://127.0.0.1:1443' . '?uuid=' . $uuid_string;
NGCP::Panel::Utils::Email::new_subscriber($c_mock, $billing_subscriber, $url);
}
}
}
1;