TT#58004 stop+start_profile instead of update_profile event

Change-Id: I0c53ecf324b0401df6379b4bf2ee76f8a0b12881
changes/97/29597/3
Rene Krenn 6 years ago
parent 7c571ed2b2
commit b431274d9c

@ -6,6 +6,8 @@ use NGCP::Panel::Utils::DateTime qw();
use constant ENABLE_EVENTS => 1; use constant ENABLE_EVENTS => 1;
use constant CREATE_EVENT_PER_ALIAS => 1; use constant CREATE_EVENT_PER_ALIAS => 1;
#use end+start profile events instead of update event when moving numbers between pilot and extension susbcribers:
use constant MOVED_UPDATE_PROFILE_EVENT => 0;
sub insert_deferred { sub insert_deferred {
my %params = @_; my %params = @_;
@ -84,19 +86,19 @@ sub insert_profile_events {
if ($pilot_prov_subscriber) { if ($pilot_prov_subscriber) {
$context->{old} = $pilot_prov_subscriber->profile_id; $context->{old} = $pilot_prov_subscriber->profile_id;
$context->{new} = $new_profile_id; $context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,MOVED_UPDATE_PROFILE_EVENT);
} }
} else { } else {
#aliases added #aliases added
$context->{old} = undef; $context->{old} = undef;
$context->{new} = $new_profile_id; $context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,1);
} }
} else { } else {
#no number change #no number change
$context->{old} = $old_profile_id; $context->{old} = $old_profile_id;
$context->{new} = $new_profile_id; $context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,1);
} }
} }
foreach my $old_alias (@$old_aliases) { foreach my $old_alias (@$old_aliases) {
@ -107,13 +109,13 @@ sub insert_profile_events {
if ($pilot_prov_subscriber) { if ($pilot_prov_subscriber) {
$context->{old} = $old_profile_id; $context->{old} = $old_profile_id;
$context->{new} = $pilot_prov_subscriber->profile_id; $context->{new} = $pilot_prov_subscriber->profile_id;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,MOVED_UPDATE_PROFILE_EVENT);
} }
} else { } else {
#aliases deleted #aliases deleted
$context->{old} = $old_profile_id; $context->{old} = $old_profile_id;
$context->{new} = undef; $context->{new} = undef;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,1);
} }
} else { } else {
#no number change #no number change
@ -124,24 +126,41 @@ sub insert_profile_events {
$context->{old} = $old_profile_id; $context->{old} = $old_profile_id;
$context->{new} = $new_profile_id; $context->{new} = $new_profile_id;
$context->{create_event_per_alias} = undef; $context->{create_event_per_alias} = undef;
$inserted += _insert_profile_event($context); $inserted += _insert_profile_event($context,1);
} }
} }
sub _insert_profile_event { sub _insert_profile_event {
my ($context) = @_; my ($context,$update_profile_event) = @_;
my $inserted = 0; my $inserted = 0;
if(($context->{old} // 0) != ($context->{new} // 0)) { if(($context->{old} // 0) != ($context->{new} // 0)) {
if(defined $context->{old} && defined $context->{new}) { if(defined $context->{old} && defined $context->{new}) {
$context->{type} = "update_profile"; if ($update_profile_event) {
} elsif(defined $context->{new}) { $context->{type} = "update_profile";
$context->{type} = "start_profile"; $inserted += insert(%$context);
} else {
$context->{type} = "end_profile";
my $new = $context->{new};
undef $context->{new};
$inserted += insert(%$context);
$context->{type} = "start_profile";
$context->{new} = $new;
my $old = $context->{old};
undef $context->{old};
$inserted += insert(%$context);
$context->{old} = $old;
$context->{type} = "update_profile";
}
} else { } else {
$context->{type} = "end_profile"; if(defined $context->{new}) {
$context->{type} = "start_profile";
} else {
$context->{type} = "end_profile";
}
$inserted += insert(%$context);
} }
$inserted += insert(%$context);
} }
return $inserted; return $inserted;

@ -1,4 +1,4 @@
use Sipwise::Base; #use Sipwise::Base;
use Net::Domain qw(hostfqdn); use Net::Domain qw(hostfqdn);
use JSON qw(); use JSON qw();
use Test::More; use Test::More;
@ -168,7 +168,7 @@ my $custcontact = JSON::from_json($res->decoded_content);
my %subscriber_map = (); my %subscriber_map = ();
my %customer_map = (); my %customer_map = ();
#goto SKIP; goto SKIP;
{ #end_ivr: { #end_ivr:
my $customer = _create_customer( my $customer = _create_customer(
type => "sipaccount", type => "sipaccount",
@ -408,7 +408,7 @@ my %customer_map = ();
# #
#} #}
#SKIP: SKIP:
{ #pilot_primary_number, primary_number, pilot_first_non_primary_alias, susbcriber_first_non_primary_alias: { #pilot_primary_number, primary_number, pilot_first_non_primary_alias, susbcriber_first_non_primary_alias:
my $customer = _create_customer( my $customer = _create_customer(
@ -671,20 +671,56 @@ my %customer_map = ();
pilot_primary_alias_username_after => $cc.$ac.$sn, pilot_primary_alias_username_after => $cc.$ac.$sn,
); );
#_check_event_history("end_profile when terminating a pbx extension subscriber w alias: ",$subscriber->{id},"%profile",[
# {},{},{},{},{},
# { %subscriber_event,
#
# type => "update_profile",
# old_status => $subscriberprofile2->{id},
# new_status => $subscriberprofile3->{id},
#
# non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
# },
# { %subscriber_event,
#
# type => "update_profile",
# old_status => $subscriberprofile2->{id},
# new_status => $subscriberprofile3->{id},
#
# non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},
# },
#]);
_check_event_history("end_profile when terminating a pbx extension subscriber w alias: ",$subscriber->{id},"%profile",[ _check_event_history("end_profile when terminating a pbx extension subscriber w alias: ",$subscriber->{id},"%profile",[
{},{},{},{},{}, {},{},{},{},{},
{ %subscriber_event, { %subscriber_event,
type => "update_profile", type => "end_profile",
old_status => $subscriberprofile2->{id}, old_status => $subscriberprofile2->{id},
new_status => '',
non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
},
{ %subscriber_event,
type => "start_profile",
old_status => '',
new_status => $subscriberprofile3->{id}, new_status => $subscriberprofile3->{id},
non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn}, non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
}, },
{ %subscriber_event, { %subscriber_event,
type => "update_profile", type => "end_profile",
old_status => $subscriberprofile2->{id}, old_status => $subscriberprofile2->{id},
new_status => '',
non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},
},
{ %subscriber_event,
type => "start_profile",
old_status => '',
new_status => $subscriberprofile3->{id}, new_status => $subscriberprofile3->{id},
non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn}, non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},

Loading…
Cancel
Save