TT#64556 ngcp-fraud-notifier: use customer_id, avoid inmemory

Change-Id: I174678631e210ebae59810497eb28fcadffe2a32
changes/19/32319/5
Rene Krenn 6 years ago
parent 854d9ac402
commit 71d82ab76a

@ -75,7 +75,7 @@ sub load_config {
}
sub get_data {
my ($uri, $link) = @_;
my ($uri, $link, $code) = @_;
my $client = new NGCP::API::Client;
$client->set_verbose($opts->{verbose});
$client->set_page_rows($page_size);
@ -89,6 +89,10 @@ sub get_data {
} elsif ($data) {
push(@result,$data);
}
if (defined $code and 'CODE' eq ref $code) {
&$code(\@result);
@result = ();
}
}
return \@result;
}
@ -126,7 +130,7 @@ sub send_email {
my $template = get_email_template($event);
my $vars = { adminmail => $config->{adminmail},
customer_id => $event->{id},
customer_id => $event->{contract_id},
interval => $event->{interval},
interval_cost => sprintf('%.2f', $event->{interval_cost}/100),
interval_limit => sprintf('%.2f', $event->{interval_limit}/100),
@ -176,10 +180,8 @@ sub update_notify_status {
my $client = new NGCP::API::Client;
$client->set_verbose($opts->{verbose});
my $id = sprintf("%d-%s-%s",
@{$event}{qw(id interval interval_date)});
my $now = strftime('%Y-%m-%d %H:%M:%S', localtime(time));
my $uri = '/api/customerfraudevents/'.$id;
my $uri = '/api/customerfraudevents/'.$event->{id};
my $data = [ { op => 'replace',
path => '/notify_status',
value => 'notified' },
@ -203,20 +205,22 @@ sub main {
check_params();
load_config();
my $events = get_data(sprintf('/api/customerfraudevents/?no_count=true&notify_status=%s',
'new'),
'customerfraudevents');
foreach my $event (@{$events}) {
my $subscribers = get_data(sprintf('/api/subscribers/?customer_id=%d',
$event->{id}),
'subscribers');
if ($event->{interval_notify}) {
eval {
send_email($event, $subscribers);
};
get_data(
sprintf('/api/customerfraudevents/?no_count=true&notify_status=%s','new'),'customerfraudevents', sub {
my $events = shift;
foreach my $event (@{$events}) {
if ($event->{interval_notify}) {
my $subscribers = get_data(sprintf('/api/subscribers/?customer_id=%d',
$event->{contract_id}),
'subscribers');
next unless scalar @$subscribers;
eval {
send_email($event, $subscribers);
};
print $EVAL_ERROR if $EVAL_ERROR;
}
}
print $EVAL_ERROR if $EVAL_ERROR;
}
});
return;
}

Loading…
Cancel
Save