about summary refs log tree commit diff
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/db.rs b/src/db.rs
index bfbdd193c4c7..3c44172b15c2 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -208,6 +208,19 @@ impl Handler<CreatePost> for DbExecutor {
 
         let conn = self.0.get()?;
 
+        let closed: bool = {
+            use schema::threads::dsl::*;
+            threads.select(closed)
+                .find(msg.0.thread_id)
+                .first(&conn)?
+        };
+
+        if closed {
+            return Err(ConverseError::ThreadClosed {
+                id: msg.0.thread_id
+            })
+        }
+
         Ok(diesel::insert_into(posts::table)
            .values(&msg.0)
            .get_result(&conn)?)