aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2022-11-28 22:07:08 +0100
committerDaniel Schadt <kingdread@gmx.de>2022-11-28 22:07:08 +0100
commit40e6c6b25fc2c7da89be6fe8c55b13dc95e4f85a (patch)
treea6463e316ea1e062130bdcc83d8ae8aa4eec67a3 /src/api
parentb9b890b24146fde7d3aa2a8fd1998b27caded462 (diff)
downloadkondou-master.tar.gz
kondou-master.tar.bz2
kondou-master.zip
add workaround for Alliance not being in the APIHEADmaster
Diffstat (limited to 'src/api')
-rw-r--r--src/api/mod.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/api/mod.rs b/src/api/mod.rs
index 0b823ae..b7a92d9 100644
--- a/src/api/mod.rs
+++ b/src/api/mod.rs
@@ -218,7 +218,27 @@ impl Api {
///
/// Traits that are found in the cache are taken from there.
pub fn get_legends(&mut self, ids: &[String]) -> Result<Vec<Legend>, ApiError> {
- self.get_multiple_cached("legends", "legends/", ids)
+ // As of 2022-11-28, the API only knows about 6 legends, missing the latest ("Legendary
+ // Alliance"). Therefore, we fake the API response here.
+ let to_fake = super::bt::Legend::Alliance.api_id().unwrap();
+ let mut missing_ids = Vec::new();
+ let mut result = Vec::new();
+ for id in ids {
+ if id == &to_fake {
+ // Hardcoded values
+ result.push(Legend {
+ id: to_fake.clone(),
+ swap: 62749,
+ heal: 62719,
+ elite: 62942,
+ utilities: vec![62832, 62962, 62878],
+ });
+ } else {
+ missing_ids.push(id.clone());
+ }
+ }
+ result.extend(self.get_multiple_cached("legends", "legends/", &missing_ids)?);
+ Ok(result)
}
/// Loads the image from the given URL.