blob: afc62b4083026d89b7f72be373ba26532ffe270a [file]
use crate::error::IggyError;
use base64::engine::general_purpose;
use base64::Engine;
use lazy_static::lazy_static;
use regex::Regex;
lazy_static! {
static ref RESOURCE_NAME_REGEX: Regex = Regex::new(r"^[\w\.\-\s]+$").unwrap();
}
pub fn to_lowercase_non_whitespace(value: &str) -> String {
value
.to_lowercase()
.split_whitespace()
.collect::<Vec<&str>>()
.join(".")
}
pub fn is_resource_name_valid(value: &str) -> bool {
RESOURCE_NAME_REGEX.is_match(value)
}
pub fn from_base64_as_bytes(value: &str) -> Result<Vec<u8>, IggyError> {
let result = general_purpose::STANDARD.decode(value);
if result.is_err() {
return Err(IggyError::InvalidFormat);
}
Ok(result.unwrap())
}
pub fn as_base64(value: &[u8]) -> String {
general_purpose::STANDARD.encode(value)
}