From: Christopher Burger Date: Tue, 29 Jan 2019 18:25:01 +0000 (-0500) Subject: RT 78356 - fixed display of error on tower and sector exports X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=6315dc498f46f00601d99f899c33205b0315c929 RT 78356 - fixed display of error on tower and sector exports --- diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm index 3eae5586c..4397a266e 100644 --- a/FS/FS/part_export/saisei.pm +++ b/FS/FS/part_export/saisei.pm @@ -324,6 +324,7 @@ sub export_tower_sector { }; my $tower_access_point = process_tower($self, $tower_opt); + return $tower_access_point if $tower_access_point->{error}; #get list of all access points my $hash_opt = { @@ -344,6 +345,7 @@ sub export_tower_sector { 'modify_existing' => '1', # modify an existing access point with this info }; my $sector_access_point = process_sector($self, $sector_opt); + return $sector_access_point if $sector_access_point->{error}; } return $self->api_error; @@ -426,7 +428,6 @@ sub api_call { } else { $self->{'__saisei_error'} = "Bad response from server during $method , received responce code: " . $client->responseCode() . " and message: " . $client->responseContent(); -# unless ($method eq "GET"); warn "Response Content is\n".$client->responseContent."\n" if $self->option('debug'); return; } @@ -650,7 +651,6 @@ Creates a access point. sub api_create_accesspoint { my ($self,$accesspoint, $upratelimit, $downratelimit) = @_; - # this has not been tested, but should work, if needed. my $new_accesspoint = $self->api_call( "PUT", "/access_points/$accesspoint", @@ -779,6 +779,11 @@ sub api_delete_host_to_user { sub process_tower { my ($self, $opt) = @_; + if (!$opt->{tower_uprate_limit} || !$opt->{tower_downrate_limit}) { + $self->{'__saisei_error'} = "Can not export tower, no up or down rates attached to tower"; + return { error => $self->api_error, }; + } + my $existing_tower_ap; my $tower_name = $opt->{tower_name}; @@ -791,14 +796,14 @@ sub process_tower { '', # tower does not have a uplink on sectors. $opt->{tower_uprate_limit}, $opt->{tower_downrate_limit}, - ) if $existing_tower_ap && $opt->{modify_existing}; + ) if $existing_tower_ap->{collection} && $opt->{modify_existing}; #if tower does not exist as an access point create it. $self->api_create_accesspoint( $tower_name, $opt->{tower_uprate_limit}, - $opt->{tower_downrate_limit} - ) unless $existing_tower_ap; + $opt->{tower_downrate_limit}, + ) unless $existing_tower_ap->{collection}; my $accesspoint = $self->api_get_accesspoint($tower_name); @@ -808,6 +813,11 @@ sub process_tower { sub process_sector { my ($self, $opt) = @_; + if (!$opt->{sector_uprate_limit} || !$opt->{sector_downrate_limit}) { + $self->{'__saisei_error'} = "Can not export sector, no up or down rates attached to sector"; + return { error => $self->api_error, }; + } + my $existing_sector_ap; my $sector_name = $opt->{sector_name}; @@ -862,10 +872,10 @@ sub process_virtual_ap { $opt->{virtual_downrate_limit}, ) unless $existing_virtual_ap; -my $update_sector; -if ($existing_virtual_ap && (ref $existing_virtual_ap->{collection}->[0]->{uplink} eq "HASH") && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) { - $update_sector = 1; -} + my $update_sector; + if ($existing_virtual_ap && (ref $existing_virtual_ap->{collection}->[0]->{uplink} eq "HASH") && ($existing_virtual_ap->{collection}->[0]->{uplink}->{link}->{name} ne $opt->{sector_name})) { + $update_sector = 1; + } # Attach newly created virtual ap to tower sector ap or if sector has changed. $self->api_modify_accesspoint($virtual_name, $opt->{sector_name}) unless ($self->{'__saisei_error'} || ($existing_virtual_ap && !$update_sector)); diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html index 7933717b0..6e27ad4e2 100644 --- a/httemplate/edit/process/elements/process.html +++ b/httemplate/edit/process/elements/process.html @@ -477,9 +477,11 @@ foreach my $value ( @values ) { if ($class eq "FS::tower") { foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) { if ($part_svc_broadband_export and $part_svc_broadband_export->can('export_tower_sector')) { - $error = $part_svc_broadband_export->export_tower_sector($new); + my $export_tower = $part_svc_broadband_export->export_tower_sector($new); + $error = $export_tower->{'error'} if $export_tower; } } + $cgi->param('error', $error) if $error; } # set up redirect URLs