From e13b5afe4f23648358c01a4d3809d0ccf46c592f Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Sun, 4 Oct 2020 12:47:09 +0200
Subject: [PATCH] Traewelling checkin: Handle invalid / revoked bearer tokens

---
 lib/Travelynx/Helper/Traewelling.pm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/lib/Travelynx/Helper/Traewelling.pm b/lib/Travelynx/Helper/Traewelling.pm
index 2a522e5f..48fc16d4 100644
--- a/lib/Travelynx/Helper/Traewelling.pm
+++ b/lib/Travelynx/Helper/Traewelling.pm
@@ -323,6 +323,19 @@ sub checkin {
 				);
 				return;
 			}
+
+			# Work around https://github.com/Traewelling/traewelling/issues/128
+			if ( $tx->res->code == 302 ) {
+				my $err_msg = "Der Login-Token wurde nicht akzeptiert";
+				$self->{log}->debug("... error: $err_msg");
+				$self->{model}->log(
+					uid => $opt{uid},
+					message =>
+					  "Fehler bei $opt{train_type} $opt{train_no}: $err_msg",
+					is_error => 1
+				);
+				return;
+			}
 			$self->{log}->debug( "... success! " . $tx->res->body );
 
 			# As of 2020-10-04, traewelling.de checkins do not yet return
-- 
GitLab