sig unlock init

This commit is contained in:
ragu 2022-06-22 18:29:46 +02:00
parent ec95e0db06
commit fa6181eaa4
5 changed files with 67 additions and 15 deletions

View file

@ -296,7 +296,7 @@ elsif($q->param('request') eq "booking_request"){
#usecase with reservationId (in ctpos) is in sig not defined, thats because using ct_bike.txt22
#$sig_book = $si->sig_booking(\%varenv,"rental",$authraw,$ct_bike,$ctpos);
#we have to use $ct_bike->{txt22} because we doesn't using sig reserve in this case
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ct_bike->{txt22} $ctpos->{c_id} &");
system("$varenv{basedir}/src/scripts/sig_client.pl '$varenv{syshost}' 'rental' '$authraw->{c_id}' '$ct_bike->{txt22}' '$ctpos->{c_id}' &");
$sig_book->{rentalId} = "$R::rentalId" if($R::rentalId);#only for cmd tests
($rows, $booking_values) = $apif->booking_update($q,\%varenv,$authraw,$aowner,$sig_book);
$response = {%$response, %$booking_values};
@ -379,12 +379,13 @@ elsif($q->param('request') eq "booking_cancel" || $q->param('request') eq "booki
#update on sig
if($ctpos->{int11} == 3){
if($q->param('state') eq "occupied"){
system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental' $authraw->{c_id} $ctpos->{txt22} $ctpos->{c_id} &");
system("$varenv{basedir}/src/scripts/sig_client.pl '$varenv{syshost}' 'rental' '$authraw->{c_id}' '$ctpos->{txt22}' '$ctpos->{c_id}' &");
}
#rental/end will be done by sig push-notification
#if($q->param('state') eq "available"){
#system("$varenv{basedir}/src/scripts/sig_client.pl $varenv{syshost} 'rental_end' $authraw->{c_id} '' $ctpos->{c_id} &");
#}
#
if($q->param('lock_state') eq "unlocking" && !$q->param('state')){
system("$varenv{basedir}/src/scripts/sig_client.pl '$varenv{syshost}' 'unlock' '$authraw->{c_id}' '$ctpos->{txt22}' '$ctpos->{c_id}' &");
}
#TODO, check if booking_values in both cases: push-notify and/or app trigger works
$sig_book->{rentalId} = "$R::rentalId" if($R::rentalId);#only for cmd tests

View file

@ -212,7 +212,8 @@ sub sig_booking_update {
my $jrout = $json->pretty->encode({shareeio => $response});
print $jrout;
$bw->log("APIjsonserver response by $user_agent mapped aowner:$aowner",$jrout,"");
print FILE "APIshareeio jrout:\n" . Dumper($jrout) . "\n" if($debug);
$bw->log("APIshareeio response by $user_agent mapped aowner:$aowner",$jrout,"");
#end JSON ----------------------------------------------------------------------------
close(FILE) if($debug);

View file

@ -83,7 +83,7 @@ sub sig_available {
my $td_template = $dbt->rental_description_template();
open(FILE,">>$varenv->{logdir}/APIsigclient.log");
print FILE "\n*** $now_dt 'sig_available' \n";
print FILE "\n0. *** $now_dt 'sig_available' \n";
#my $endpoint = "https://sigo.dev.sigo.green/api/v1/bikes";
my $endpoint = "$dbt->{operator}->{$varenv->{dbname}}->{endpoint}/bikes";
@ -151,8 +151,8 @@ sub sig_available {
$return2copri->{$station}->{int10} = $key;
}
}
delete $response_out->{$station} if(uc($resp->{site}->{status}) ne "ACTIVE" || !$resp->{site}->{lat} || !$resp->{site}->{lon});
#TODO, disabled for workaround to see what happens. 22.06.2022
#delete $response_out->{$station} if(uc($resp->{site}->{status}) ne "ACTIVE" || !$resp->{site}->{lat} || !$resp->{site}->{lon});
}
}#end stations_available
@ -270,6 +270,46 @@ sub sig_available {
return ($response_out,$return2copri);
}#end sig_available
#bike smartlock unlocking
sub sig_unlock {
my $self = shift;
my $varenv = shift || {};
my $todo = shift || "";
my $ctadr = shift || {};
my $ct_bike = shift || {};
my $ctpos = shift || {};
my $sig_bikeId = $ctpos->{txt22} || $ct_bike->{txt22};
my $response_in = {};
my $dbh = "";
my $owner = 169;
open(FILE,">>$varenv->{logdir}/APIsigclient.log");
print FILE "\n3. *** $now_dt 'sig_unlock' \n";
my $endpoint = "$dbt->{operator}->{$varenv->{dbname}}->{endpoint}/bikes/unlock";
my $response_out = {};
my $return2copri = {};
my $rest_json = $sig_bikeId;
(my $ret_json, my $ret_status) = $self->get_sig("$endpoint",$rest_json);
eval {
$response_in = decode_json($ret_json);
$now_dt = strftime "%Y-%m-%d %H:%M:%S", localtime;
print FILE "<--- $now_dt sig_unlock response_in with status_line: $ret_status:\n";
};
if ($@){
print FILE "<--- failure sig_unlock raw response_in with status_line: $ret_status\n" . Dumper($ret_json) . "\n";
#warn $@;
print FILE "warn:" . $@ . "\n";
}
print FILE "sig_unlock ret_json from response_in\n" . Dumper($ret_json) . "\n";
close(FILE);
return;
}
#POST resverve, rental, ...
#will be called by sig_client
sub sig_booking {

View file

@ -71,6 +71,12 @@ $ctpos = $dbt->fetch_tablerecord($dbh,$posref) if($user_id =~ /^\d+$/ && $user_i
print FILE "fetched from DB ctadr:$ctadr->{c_id}|ctpos:$ctpos->{c_id}\n";
#sig => copri key mapping
#bike id => txt22
#reservationId => txt10
#renatlId => txt11
#only for tests
if($todo eq "stations_available"){
$q->param(-name=>'request',-value=>"stations_available");
@ -87,11 +93,6 @@ if($todo eq "bikes_available"){
#print $0 . Dumper($return) . "\n";
}
#sig => copri key mapping
#bike id => txt22
#reservationId => txt10
#renatlId => txt11
#only for tests. build in methode
elsif($todo eq "reserve"){
#$ctadr = { c_id => 1842 };
@ -108,6 +109,14 @@ elsif($todo eq "rental" && $ctadr->{c_id} > 0){
#print $0 . Dumper($return) . "\n";
}
#live! Fork unlock by lock_state=unlocking request with bike "id"
elsif($todo eq "unlock" && $ctadr->{c_id} > 0){
#$ctadr = { c_id => 1842 };
#$ct_bike = { txt22 => "380116b5-0522-43da-ab66-477744a731a3" };
my $return = $si->sig_unlock(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);
#print $0 . Dumper($return) . "\n";
}
#live! Fork rental_end request with "rentalId"
elsif($todo eq "rental_end" && $ctadr->{c_id} > 0 && $ctpos->{txt11}){
my $return = $si->sig_booking(\%varenv,$todo,$ctadr,$ct_bike,$ctpos);

View file

@ -676,7 +676,8 @@ Nach Abschluss der Registrierung erhalten Sie sowohl auf die von Ihnen hinterleg
}#ende e-Mail iif
print $q->div({-class=>'content2'}, "Bei Problemen während der Registrierung bitte unsere Account-hotline <a href='mailto:hotline\@sharee.bike'>hotline\@sharee.bike</a> kontaktieren."),"\n" if($project eq "Bayern" && $path =~ /$varenv->{accounting_1}|$varenv->{accounting_3}/);
#print $q->div({-class=>'content2'}, "Bei Problemen während der Registrierung bitte unsere Account-hotline <a href='mailto:hotline\@sharee.bike'>hotline\@sharee.bike</a> kontaktieren."),"\n" if($project eq "Bayern" && $path =~ /$varenv->{accounting_1}|$varenv->{accounting_3}/);
print $q->div({-class=>'content2', -style=>'margin-top:2em;'}, "Bei Problemen während der Registrierung bitte unsere Account-hotline hotline\@sharee.bike kontaktieren."),"\n" if($project eq "Bayern" && $path =~ /$varenv->{accounting_1}|$varenv->{accounting_3}/);
print "</div>\n";
print $q->end_form,"\n";