1use std::env;
2
3pub struct Config {
4 pub movebank_username: Option<String>,
5 pub movebank_password: Option<String>,
6 pub inaturalist_token: Option<String>,
7 pub iucn_token: Option<String>,
8}
9
10impl Config {
11 pub fn from_env() -> Self {
12 Self {
13 movebank_username: env::var("MOVEBANK_USERNAME").ok(),
14 movebank_password: env::var("MOVEBANK_PASSWORD").ok(),
15 inaturalist_token: env::var("INATURALIST_TOKEN").ok(),
16 iucn_token: env::var("IUCN_TOKEN").ok(),
17 }
18 }
19
20 pub fn has_movebank_credentials(&self) -> bool {
21 self.movebank_username.is_some() && self.movebank_password.is_some()
22 }
23
24 pub fn has_inaturalist_token(&self) -> bool {
25 self.inaturalist_token.is_some()
26 }
27
28 pub fn has_iucn_token(&self) -> bool {
29 self.iucn_token.is_some()
30 }
31}
32
33impl Default for Config {
34 fn default() -> Self {
35 Self::from_env()
36 }
37}