Send event to channel when post updated

This commit is contained in:
Kitaiti Makoto 2021-01-07 22:34:11 +09:00
parent 69963689f9
commit aae2073146

View file

@ -85,10 +85,11 @@ impl Post {
Ok(post) Ok(post)
} }
pub fn update(&self, conn: &Connection, searcher: &Searcher) -> Result<Self> { pub fn update(&self, conn: &Connection, _searcher: &Searcher) -> Result<Self> {
diesel::update(self).set(self).execute(conn)?; diesel::update(self).set(self).execute(conn)?;
let post = Self::get(conn, self.id)?; let post = Self::get(conn, self.id)?;
searcher.update_document(conn, &post)?; // TODO: Call publish_published() when newly published
self.publish_updated();
Ok(post) Ok(post)
} }
@ -559,6 +560,16 @@ impl Post {
None, None,
) )
} }
fn publish_updated(&self) {
POST_CHAN.tell(
Publish {
msg: PostUpdated(self.clone()),
topic: "post.updated".into(),
},
None,
)
}
} }
impl FromId<PlumeRocket> for Post { impl FromId<PlumeRocket> for Post {