Can create a family member
This commit is contained in:
48
geneit_backend/src/utils/countries_utils.rs
Normal file
48
geneit_backend/src/utils/countries_utils.rs
Normal file
@@ -0,0 +1,48 @@
|
||||
use lazy_static::lazy_static;
|
||||
use std::collections::HashMap;
|
||||
|
||||
lazy_static! {
|
||||
static ref COUNTRIES_FR: HashMap<String, String> =
|
||||
serde_json::from_str(include_str!("../../assets/iso-3166_country_french.json")).unwrap();
|
||||
}
|
||||
|
||||
pub fn is_code_valid(code: &str) -> bool {
|
||||
rust_iso3166::ALL_ALPHA2.contains(&code)
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, Debug, Copy, Clone)]
|
||||
pub struct CountryCode {
|
||||
code: &'static str,
|
||||
en: &'static str,
|
||||
fr: &'static str,
|
||||
}
|
||||
|
||||
/// Get the entire list of countries
|
||||
pub fn get_list() -> Vec<CountryCode> {
|
||||
rust_iso3166::ALL
|
||||
.iter()
|
||||
.map(|c| CountryCode {
|
||||
code: c.alpha2,
|
||||
en: c.name,
|
||||
fr: COUNTRIES_FR
|
||||
.get(c.alpha2)
|
||||
.map(|s| s.as_str())
|
||||
.unwrap_or(c.name),
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::utils::countries_utils::is_code_valid;
|
||||
|
||||
#[test]
|
||||
fn test_code_fr() {
|
||||
assert!(is_code_valid("FR"))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_code_bad() {
|
||||
assert!(!is_code_valid("ZZ"))
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
//! # App utilities
|
||||
|
||||
pub mod countries_utils;
|
||||
pub mod string_utils;
|
||||
pub mod time_utils;
|
||||
|
Reference in New Issue
Block a user