junobuild_cdn/storage/
assert.rs1use crate::storage::errors::{
2 JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_DESCRIPTION,
3 JUNO_CDN_STORAGE_ERROR_MISSING_RELEASES_DESCRIPTION,
4};
5use junobuild_shared::assert::assert_version;
6use junobuild_shared::regex::build_regex;
7use junobuild_storage::types::config::StorageConfig;
8use junobuild_storage::types::interface::SetStorageConfig;
9
10pub fn assert_releases_description(description: &Option<String>) -> Result<(), String> {
11 let desc = description
12 .as_deref()
13 .ok_or(JUNO_CDN_STORAGE_ERROR_MISSING_RELEASES_DESCRIPTION)?;
14
15 let desc_re = build_regex(r"^change=\d+;version=[^;]+$")?;
16 if !desc_re.is_match(desc) {
17 return Err(format!(
18 "{JUNO_CDN_STORAGE_ERROR_INVALID_RELEASES_DESCRIPTION} ({desc})"
19 ));
20 }
21
22 Ok(())
23}
24
25pub fn assert_set_config(
26 proposed_config: &SetStorageConfig,
27 current_config: &StorageConfig,
28) -> Result<(), String> {
29 assert_version(proposed_config.version, current_config.version)?;
30
31 Ok(())
32}