irongit

Git hosting and a container registry in one Rust binary (axum + Astro)

Forms accept omitted optional fields

huncholanehuncholaneauthored
parent a6b8583commit 179023b000a2d7a33146732c0088cd8e73cca581Browse files

3 files changed, +6 -2

+1-0backend/src/web/home.rs
@@ -256,6 +256,7 @@ pub async fn new_repo_page(ctx: Ctx, RequireViewer(viewer): RequireViewer, Query
256256 }
257257
258258 #[derive(Deserialize, Default)]
259+#[serde(default)]
259260 pub struct NewRepoForm {
260261 owner: String,
261262 name: String,
+3-1backend/src/web/orgs.rs
@@ -35,6 +35,7 @@ pub fn router() -> Router<AppState> {
3535 }
3636
3737 #[derive(Deserialize, Default)]
38+#[serde(default)]
3839 pub struct NewOrgForm {
3940 name: String,
4041 display_name: String,
@@ -165,7 +166,8 @@ pub async fn settings_page(ctx: Ctx, RequireViewer(viewer): RequireViewer, Path(
165166 Ok(ctx.render(Page::new(format!("{} settings", org.name), body).noindex()))
166167 }
167168
168-#[derive(Deserialize)]
169+#[derive(Deserialize, Default)]
170+#[serde(default)]
169171 pub struct OrgProfileForm {
170172 display_name: String,
171173 bio: String,
+2-1backend/src/web/settings.rs
@@ -152,7 +152,8 @@ pub async fn profile_page(ctx: Ctx, RequireViewer(viewer): RequireViewer, Query(
152152 Ok(shell(&ctx, "profile", "Public profile", body))
153153 }
154154
155-#[derive(Deserialize)]
155+#[derive(Deserialize, Default)]
156+#[serde(default)]
156157 pub struct ProfileForm {
157158 display_name: String,
158159 bio: String,