summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuebinm2024-09-09 15:47:47 +0200
committerstuebinm2024-09-09 15:47:47 +0200
commit0a3aad3a4e31049b36832827a5b3afff1334bff8 (patch)
treec8235aaae7a8ee564741161ab0d9fd1fb8b3c81c
parentb6080abc5661f9323593944f5701d7dd7597afb9 (diff)
do not require ds100 codes in API responses
these are not present when other hafas backends than the DB one were used for the trip's checkin.
-rw-r--r--src/main.rs2
-rw-r--r--src/onboard/iceportal.rs4
-rw-r--r--src/onboard/zugportal.rs4
-rw-r--r--src/traits.rs4
-rw-r--r--src/types.rs10
5 files changed, 12 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs
index 0a8fc54..7327785 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -188,7 +188,7 @@ async fn main() -> Result<(), ureq::Error> {
&format!("{}/api/v1/travel", cli.baseurl),
Action::CheckIn {
train: train.into(),
- to_station: status.to_station.map(|s| s.ds100),
+ to_station: status.to_station.map(|s| s.ds100).flatten(),
token: config.token_travel,
comment: None,
from_station: from
diff --git a/src/onboard/iceportal.rs b/src/onboard/iceportal.rs
index bde0b1f..55b35e7 100644
--- a/src/onboard/iceportal.rs
+++ b/src/onboard/iceportal.rs
@@ -75,8 +75,8 @@ impl IsStation for Stop {
self.timetable.scheduled_arrival_time.as_ref()
}
- fn ds100(&self) -> &str {
- "??"
+ fn ds100(&self) -> Option<&str> {
+ None
}
}
diff --git a/src/onboard/zugportal.rs b/src/onboard/zugportal.rs
index c649107..fe083ef 100644
--- a/src/onboard/zugportal.rs
+++ b/src/onboard/zugportal.rs
@@ -67,8 +67,8 @@ impl IsStation for Stop {
self.arrival_time.as_ref().map(|t| &t.predicted)
}
- fn ds100(&self) -> &str {
- "??"
+ fn ds100(&self) -> Option<&str> {
+ None
}
}
diff --git a/src/traits.rs b/src/traits.rs
index 091709a..b4b74e7 100644
--- a/src/traits.rs
+++ b/src/traits.rs
@@ -6,7 +6,7 @@ pub trait IsStation {
fn name(&self) -> &str;
fn scheduled_arrival(&self) -> Option<&DateTime<Utc>>;
fn real_arrival(&self) -> Option<&DateTime<Utc>>;
- fn ds100(&self) -> &str;
+ fn ds100(&self) -> Option<&str>;
fn to_fancy_string(&self) -> String {
// travelynx literally sends this entire precise date in case of an
@@ -35,7 +35,7 @@ pub trait IsStation {
text.green()
}
},
- self.ds100().red(),
+ self.ds100().unwrap_or("??").red(),
self.name()
)
}
diff --git a/src/types.rs b/src/types.rs
index 257f857..b698898 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -10,7 +10,7 @@ use crate::traits::IsStation;
#[serde(rename_all = "camelCase")]
pub struct Station {
name: String,
- pub ds100: String,
+ pub ds100: Option<String>,
uic: u64,
latitude: f64,
longitude: f64,
@@ -56,8 +56,8 @@ impl IsStation for Station {
Some(&self.real_time)
}
- fn ds100(&self) -> &str {
- &self.ds100
+ fn ds100(&self) -> Option<&str> {
+ self.ds100.as_deref()
}
}
@@ -72,8 +72,8 @@ impl IsStation for Stop {
self.real_arrival.as_ref()
}
- fn ds100(&self) -> &str {
- "[??]"
+ fn ds100(&self) -> Option<&str> {
+ None
}
}