httpd: Allow removing of reactions from issues
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
This commit is contained in:
parent
15b50ce6a5
commit
6abbd39926
|
|
@ -323,7 +323,7 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
|
||||||
let (comment_id, _) = term::io::comment_select(&issue).unwrap();
|
let (comment_id, _) = term::io::comment_select(&issue).unwrap();
|
||||||
*comment_id
|
*comment_id
|
||||||
});
|
});
|
||||||
issue.react(comment_id, reaction, &signer)?;
|
issue.react(comment_id, reaction, true, &signer)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Operation::Open {
|
Operation::Open {
|
||||||
|
|
|
||||||
|
|
@ -553,8 +553,12 @@ async fn issue_update_handler(
|
||||||
return Err(Error::BadRequest("`replyTo` missing".to_owned()));
|
return Err(Error::BadRequest("`replyTo` missing".to_owned()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
issue::Action::CommentReact { id, reaction, .. } => {
|
issue::Action::CommentReact {
|
||||||
issue.react(id, reaction, &signer)?;
|
id,
|
||||||
|
reaction,
|
||||||
|
active,
|
||||||
|
} => {
|
||||||
|
issue.react(id, reaction, active, &signer)?;
|
||||||
}
|
}
|
||||||
issue::Action::CommentEdit { .. } => {
|
issue::Action::CommentEdit { .. } => {
|
||||||
todo!();
|
todo!();
|
||||||
|
|
|
||||||
|
|
@ -291,11 +291,16 @@ impl store::Transaction<Issue> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// React to an issue comment.
|
/// React to an issue comment.
|
||||||
pub fn react(&mut self, id: CommentId, reaction: Reaction) -> Result<(), store::Error> {
|
pub fn react(
|
||||||
|
&mut self,
|
||||||
|
id: CommentId,
|
||||||
|
reaction: Reaction,
|
||||||
|
active: bool,
|
||||||
|
) -> Result<(), store::Error> {
|
||||||
self.push(Action::CommentReact {
|
self.push(Action::CommentReact {
|
||||||
id,
|
id,
|
||||||
reaction,
|
reaction,
|
||||||
active: true,
|
active,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -406,9 +411,10 @@ where
|
||||||
&mut self,
|
&mut self,
|
||||||
to: CommentId,
|
to: CommentId,
|
||||||
reaction: Reaction,
|
reaction: Reaction,
|
||||||
|
active: bool,
|
||||||
signer: &G,
|
signer: &G,
|
||||||
) -> Result<EntryId, Error> {
|
) -> Result<EntryId, Error> {
|
||||||
self.transaction("React", signer, |tx| tx.react(to, reaction))
|
self.transaction("React", signer, |tx| tx.react(to, reaction, active))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn transaction<G, F>(
|
pub fn transaction<G, F>(
|
||||||
|
|
@ -875,7 +881,7 @@ mod test {
|
||||||
let (comment, _) = issue.root();
|
let (comment, _) = issue.root();
|
||||||
let comment = *comment;
|
let comment = *comment;
|
||||||
let reaction = Reaction::new('🥳').unwrap();
|
let reaction = Reaction::new('🥳').unwrap();
|
||||||
issue.react(comment, reaction, &node.signer).unwrap();
|
issue.react(comment, reaction, true, &node.signer).unwrap();
|
||||||
|
|
||||||
let id = issue.id;
|
let id = issue.id;
|
||||||
let issue = issues.get(&id).unwrap().unwrap();
|
let issue = issues.get(&id).unwrap().unwrap();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue