diff --git a/copri4/main/src/Mod/APIsigoclient.pm b/copri4/main/src/Mod/APIsigoclient.pm index e56a47a..96928ba 100755 --- a/copri4/main/src/Mod/APIsigoclient.pm +++ b/copri4/main/src/Mod/APIsigoclient.pm @@ -88,11 +88,11 @@ sub sigo_available { my $response_out = {}; my $return2copri = {}; my $rest_json = ""; - my $ret_json = $self->get_sigo("$endpoint",$rest_json); + (my $ret_json, my $ret_status) = $self->get_sigo("$endpoint",$rest_json); eval { $response_in = decode_json($ret_json); $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime; - print FILE "<--- $now_dt station_and_bikes response_in:\n"; + print FILE "<--- $now_dt station_and_bikes response_in with status_line: $ret_status:\n"; #print FILE Dumper($response_in) . "\n"; if(ref($response_in) eq "HASH"){ @@ -256,8 +256,9 @@ sub sigo_available { } }; if ($@){ - print FILE "<--- failure get_bikes raw response_in:\n" . Dumper($ret_json) . "\n"; - warn $@; + print FILE "<--- failure get_bikes raw response_in with status_line: $ret_status\n" . Dumper($ret_json) . "\n"; + #warn $@; + print FILE "warn:" . $@ . "\n"; } print FILE "sigo_available response_out from response_in\n" . Dumper($response_out) . "\n"; @@ -330,21 +331,29 @@ sub sig_booking { if(ref(\%json) eq "HASH" && $json{email}){ my $rest_json = encode_json(\%json); - my $ret_json = $self->post_sigo($endpoint,$rest_json); + (my $ret_json, my $ret_status) = $self->post_sigo($endpoint,$rest_json); $now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime; eval { $sig_book = decode_json($ret_json); - print FILE "<--- $now_dt sigo_post $todo response_in:\n" . Dumper($sig_book); + print FILE "<--- $now_dt sig_booking sigo_post $todo response_in with status_line: $ret_status\n" . Dumper($sig_book); #print $ret_json . "\n"; }; if ($@){ - print FILE "<--- $now_dt failure sigo_post $todo raw response_in:\n" . Dumper($ret_json) . "\n"; + print FILE "<--- $now_dt failure sig_booking sigo_post $todo raw response_in with status_line: $ret_status\n" . Dumper($ret_json) . "\n"; #warn $@; print FILE "warn:" . $@ . "\n"; } } + if(ref($sig_book) ne "HASH"){ + $sig_book = { + rentalId => "", + reservationId => "" + }; + print FILE "<--- $now_dt failure sig_booking sigo_post $todo , reset sig_book hash to empty\n"; + } + close(FILE); return $sig_book; } @@ -367,10 +376,11 @@ sub get_sigo { my $res = $ua->request($req); if ($res->is_success) { #print $res->content; - return $res->content; - print $res->status_line, "\n"; + #print $res->status_line, "\n"; + return ($res->content, $res->status_line); }else { - print $res->status_line, "\n"; + #print $res->status_line, "\n"; + return ("", $res->status_line); } } @@ -391,10 +401,11 @@ sub post_sigo { my $res = $ua->request($req); if ($res->is_success) { #print $res->content; - return $res->content; - print $res->status_line, "\n"; + #print $res->status_line, "\n"; + return ($res->content, $res->status_line); }else { - print $res->status_line, "\n"; + #print $res->status_line, "\n"; + return ("", $res->status_line); } } diff --git a/copri4/main/src/Mod/APIxmlserver.pm b/copri4/main/src/Mod/APIxmlserver.pm index a4cb50a..7af2b7a 100755 --- a/copri4/main/src/Mod/APIxmlserver.pm +++ b/copri4/main/src/Mod/APIxmlserver.pm @@ -7,7 +7,7 @@ package Mod::APIxmlserver; # ##In DB context $q->escapeHTML must always done by API # -#use lib qw(/var/www/copri4/shareeapp-primary/src); +#use lib qw(/var/www/copri-bike/shareeapp-lv/src); use warnings; use strict; use Exporter; @@ -70,8 +70,9 @@ sub handler { my $xmlref = {}; $xmlref = XMLin($q->param('POSTDATA'), ForceArray => ['sharee_LastenVelo'], KeyAttr => [ ] ); - $xmlref->{userID} =~ s/\s//g; - if(ref($xmlref) eq "HASH" && $xmlref->{todo} && looks_like_number($xmlref->{userID}) && $xmlref->{userID} =~ /^\d+$/){ + $xmlref->{userID} =~ s/\s//g if($xmlref->{userID}); + $xmlref->{emailID} =~ s/\s//g if($xmlref->{emailID}); + if(ref($xmlref) eq "HASH" && $xmlref->{todo} && $xmlref->{emailID} && looks_like_number($xmlref->{userID}) && $xmlref->{userID} =~ /^\d+$/){ # # @@ -95,13 +96,24 @@ sub handler { template_id => "202", int01 => "$xmlref->{userID}", }; + my $record = { c_id => "" }; + $record = $dbt->fetch_record($dbh,$pref); - my $record = $dbt->fetch_record($dbh,$pref); + #select if email still exist + my $pref_e = { + table => "contentadr", + fetch => "one", + template_id => "202", + txt08 => "$xmlref->{emailID}", + }; + my $record_e = { c_id => "" }; + $record_e = $dbt->fetch_record($dbh,$pref_e); my $c_id = ""; $bw->log("$xmlref->{todo}",$xmlref,""); if($xmlref->{userID} && $xmlref->{emailID} && $xmlref->{pwID}){ - if($xmlref->{todo} =~ /add_LVuser|update_LVuser/ && !$record->{c_id}){ + if($xmlref->{todo} =~ /add_LVuser|update_LVuser/ && !$record->{c_id} && !$record_e->{c_id}){ + my $teltime = time; my $pwmd5 = md5_hex($q->escapeHTML($xmlref->{pwID})); #$c_id = $tk->create_account($owner); @@ -132,6 +144,18 @@ sub handler { ct_name => "LV-12345678", }; $c_id = $dbt->insert_contentoid($dbh,$insert); + + }elsif($xmlref->{todo} eq "update_LVuser" && $record_e->{c_id}){ + + #keep all and add only LV userID if user email still exist + my $update = { + table => "contentadr", + mtime => 'now()', + owner => "$owner", + int01 => "$xmlref->{userID}" + }; + my $rows = $dbt->update_record($dbh,$update,$record); + }elsif($xmlref->{todo} eq "update_LVuser" && $record->{c_id}){ my $pwmd5 = md5_hex($xmlref->{pwID});