use regex::Regex;
use crate::data_validation::error::DataValidationError;
use crate::error::InvalidArgumentError;
pub const ALT_ID_FORMAT: &str =
"^[\\w\\-\\+=/~!@#\\$%\\^&\\*{}|\\[\\]<>\\?]+:[\\w\\-\\+=/~!@#\\$%\\^&\\*{}|\\[\\]<>\\?]+$";
pub fn validate_alt_id_format(id: &str) -> Result<(), DataValidationError> {
let alt_id_format = Regex::new(ALT_ID_FORMAT).unwrap();
if !alt_id_format.is_match(id) {
return Err(DataValidationError::InvalidArgument(
InvalidArgumentError::new(
"alternate_id".to_string(),
format!(
"Invalid alternate ID format: '{}'; must match <alternate_id_type>:<alternate_id>",
id
),
),
));
}
Ok(())
}