X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fdb_schema%2Fsrc%2Futils.rs;h=d20b32d8deff6903c13c70c9585328c1ab2d9f89;hb=235cc8b22897bfb3e71ba3dbd725d36863fea8ba;hp=798786b06d1cd829b6199f294debba952dcbdd63;hpb=276a8c2bd3e4fd1323e66b808675cf14cf6f75c5;p=lemmy.git diff --git a/crates/db_schema/src/utils.rs b/crates/db_schema/src/utils.rs index 798786b0..d20b32d8 100644 --- a/crates/db_schema/src/utils.rs +++ b/crates/db_schema/src/utils.rs @@ -100,6 +100,20 @@ pub fn diesel_option_overwrite_to_url( } } +pub fn diesel_option_overwrite_to_url_create( + opt: &Option, +) -> Result, LemmyError> { + match opt.as_ref().map(|s| s.as_str()) { + // An empty string is nothing + Some("") => Ok(None), + Some(str_url) => match Url::parse(str_url) { + Ok(url) => Ok(Some(url.into())), + Err(e) => Err(LemmyError::from_error_message(e, "invalid_url")), + }, + None => Ok(None), + } +} + pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!(); pub fn establish_unpooled_connection() -> PgConnection {