error message on token-file error instead of fhem crash (die, croak)

This commit is contained in:
Philipp Wo 2020-04-25 10:57:42 +02:00
parent 99ff30c13a
commit 0d129f3f64

View File

@ -29,7 +29,6 @@ use HTTP::Request::Common qw (POST GET PUT);
use HTTP::Headers; use HTTP::Headers;
use JSON; use JSON;
use POSIX qw(strftime); use POSIX qw(strftime);
use Carp;
####DEFAULTS############ ####DEFAULTS############
my $client_id = 'public-api-preview'; my $client_id = 'public-api-preview';
@ -469,7 +468,11 @@ sub TadoAPI_LoadToken {
if ($apiStatus) { if ($apiStatus) {
my $TOKENFILE; my $TOKENFILE;
eval{ eval{
open( $TOKENFILE, q{<}, $tokenFileName ) or croak( "Tokenfile loading error: $! " ); open( $TOKENFILE, q{<}, $tokenFileName ) or do {
$apiStatus = 0;
$hash->{STATE} = "Token error";
return;
};
$Token = decode_json(<$TOKENFILE>) }; $Token = decode_json(<$TOKENFILE>) };
close($TOKENFILE); close($TOKENFILE);
@ -549,7 +552,11 @@ sub TadoAPI_NewTokenRequest {
} }
else { else {
#write token data in file #write token data in file
open( my $TOKENFILE, q{>}, $tokenFileName ) or croak( "Tokenfile writing error: $! " ); open( my $TOKENFILE, q{>}, $tokenFileName ) or do {
$apiStatus = 0;
$hash->{STATE} = "Token error";
return;
};
print $TOKENFILE $returnData . "\n"; print $TOKENFILE $returnData . "\n";
close($TOKENFILE); close($TOKENFILE);
@ -578,7 +585,11 @@ sub TadoAPI_TokenRefresh {
# load token # load token
my $TOKENFILE; my $TOKENFILE;
eval { eval {
open( $TOKENFILE, q{<}, $tokenFileName ) or croak( "Tokenfile loading for refresh error: $! " ); open( $TOKENFILE, q{<}, $tokenFileName ) or do {
$apiStatus = 0;
$hash->{STATE} = "Token error";
return;
};
$Token = decode_json(<$TOKENFILE>) }; $Token = decode_json(<$TOKENFILE>) };
close($TOKENFILE); close($TOKENFILE);
@ -624,7 +635,11 @@ sub TadoAPI_TokenRefresh {
} }
else { else {
#write token data in file #write token data in file
open( my $TOKENFILE, q{>}, $tokenFileName ) or croak( "Tokenfile refreshing (write) error: $! " ); open( my $TOKENFILE, q{>}, $tokenFileName ) or do {
$apiStatus = 0;
$hash->{STATE} = "Token error";
return;
};
print $TOKENFILE $returnData . "\n"; print $TOKENFILE $returnData . "\n";
close($TOKENFILE); close($TOKENFILE);