diff options
Diffstat (limited to 'src/warning/models.rs')
| -rw-r--r-- | src/warning/models.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/warning/models.rs b/src/warning/models.rs index c420dd0..9e79e6c 100644 --- a/src/warning/models.rs +++ b/src/warning/models.rs @@ -59,6 +59,7 @@ pub struct WarningCreate { #[derive(Deserialize)] pub struct WarningEdit { pub admin_note: String, + pub resolved_by: Option<bool>, } /// Payload used for warning filtering @@ -355,8 +356,12 @@ impl Warning { Ok(count) } - /// Edit a warning - pub async fn edit(&mut self, resolver: i32, payload: WarningEdit) -> Result<(), AppError> { + /// Edit a warning. When `resolver` is None, it means a warning is no more resolved + pub async fn edit( + &mut self, + resolver: Option<i32>, + payload: WarningEdit, + ) -> Result<(), AppError> { let pool = unsafe { get_client() }; let now = Local::now().naive_utc(); @@ -374,7 +379,7 @@ impl Warning { .await?; self.admin_note = payload.admin_note; - self.resolved_by = Some(resolver); + self.resolved_by = resolver; self.updated = now; Ok(()) |
