use std::borrow::Borrow;
use crate::types::currency::Currency;
use super::{
internal::{fetch_response, Endpoint},
BlueArchiveError, Client, Language, Result,
};
pub async fn fetch_all_currencies(
language: impl Borrow<Language>,
) -> Result<Vec<Currency>, BlueArchiveError> {
Ok(
fetch_response(&Endpoint::Currency, language.borrow(), &Client::new())
.await?
.json::<Vec<Currency>>()
.await?,
)
}
pub async fn fetch_currency_by_name(
name: impl AsRef<str>,
language: impl Borrow<Language>,
) -> Result<Option<Currency>, BlueArchiveError> {
Ok(fetch_all_currencies(language)
.await?
.into_iter()
.find(|currency| currency.name.to_lowercase() == name.as_ref().to_lowercase()))
}