Implement Mention::from_activity07()
This commit is contained in:
parent
991dfccf3b
commit
32cd91cfb9
@ -138,6 +138,49 @@ impl Mention {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn from_activity07(
|
||||||
|
conn: &Connection,
|
||||||
|
ment: &link07::Mention,
|
||||||
|
inside: i32,
|
||||||
|
in_post: bool,
|
||||||
|
notify: bool,
|
||||||
|
) -> Result<Self> {
|
||||||
|
let ap_url = ment.href().ok_or(Error::NotFound)?.as_str();
|
||||||
|
let mentioned = User::find_by_ap_url(conn, ap_url)?;
|
||||||
|
|
||||||
|
if in_post {
|
||||||
|
Post::get(conn, inside).and_then(|post| {
|
||||||
|
let res = Mention::insert(
|
||||||
|
conn,
|
||||||
|
NewMention {
|
||||||
|
mentioned_id: mentioned.id,
|
||||||
|
post_id: Some(post.id),
|
||||||
|
comment_id: None,
|
||||||
|
},
|
||||||
|
)?;
|
||||||
|
if notify {
|
||||||
|
res.notify(conn)?;
|
||||||
|
}
|
||||||
|
Ok(res)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
Comment::get(conn, inside).and_then(|comment| {
|
||||||
|
let res = Mention::insert(
|
||||||
|
conn,
|
||||||
|
NewMention {
|
||||||
|
mentioned_id: mentioned.id,
|
||||||
|
post_id: None,
|
||||||
|
comment_id: Some(comment.id),
|
||||||
|
},
|
||||||
|
)?;
|
||||||
|
if notify {
|
||||||
|
res.notify(conn)?;
|
||||||
|
}
|
||||||
|
Ok(res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn delete(&self, conn: &Connection) -> Result<()> {
|
pub fn delete(&self, conn: &Connection) -> Result<()> {
|
||||||
//find related notifications and delete them
|
//find related notifications and delete them
|
||||||
if let Ok(n) = Notification::find(conn, notification_kind::MENTION, self.id) {
|
if let Ok(n) = Notification::find(conn, notification_kind::MENTION, self.id) {
|
||||||
|
Loading…
Reference in New Issue
Block a user