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