From c2a2f6561183e9691478db1cd08349f09af1cb73 Mon Sep 17 00:00:00 2001 From: Anthony Di Iorio Date: Tue, 3 Mar 2020 22:37:16 -0500 Subject: [PATCH] Fix HamQTH session expiry If HamQTH session has expired after 1 hour, start a new session and retry the search. Checks against a new error field in the HamQTH library. https://www.hamqth.com/developers.php --- application/controllers/Logbook.php | 7 +++++++ application/libraries/Hamqth.php | 1 + 2 files changed, 8 insertions(+) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index e86f999e..7f0b9955 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -124,6 +124,13 @@ class Logbook extends CI_Controller { } $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + + // If HamQTH session has expired, start a new session and retry the search. + if($callbook['error'] == "Session does not exist or expired") { + $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); + $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); + $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + } } if (isset($callbook)) diff --git a/application/libraries/Hamqth.php b/application/libraries/Hamqth.php index 20cf8936..b98bb79f 100644 --- a/application/libraries/Hamqth.php +++ b/application/libraries/Hamqth.php @@ -79,6 +79,7 @@ class Hamqth { $data['lat'] = (string) $xml->search->latitude; $data['long'] = (string) $xml->search->longitude; $data['iota'] = (string) $xml->search->iota; + $data['error'] = (string) $xml->session->error; return $data; }