sig error handling

This commit is contained in:
ragu 2022-05-04 14:18:58 +02:00
parent c8d7b562bd
commit c4d925b210
2 changed files with 53 additions and 18 deletions

View file

@ -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);
}
}

View file

@ -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+$/){
#<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
# <sharee_LastenVelo>
@ -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});