wp_goji_patch/
transitions.rs1use crate::{Error, Jira, Result, TransitionOption, TransitionOptions, TransitionTriggerOptions};
5
6#[derive(Debug)]
8pub struct Transitions {
9 jira: Jira,
10 key: String,
11}
12
13impl Transitions {
14 pub fn new<K>(jira: &Jira, key: K) -> Transitions
15 where
16 K: Into<String>,
17 {
18 Transitions {
19 jira: jira.clone(),
20 key: key.into(),
21 }
22 }
23
24 pub fn list(&self) -> Result<Vec<TransitionOption>> {
26 self.jira
27 .get::<TransitionOptions>(
28 "api",
29 &format!("/issue/{}/transitions?expand=transitions.fields", self.key),
30 )
31 .map(|wrapper| wrapper.transitions)
32 }
33
34 pub fn trigger(&self, trans: TransitionTriggerOptions) -> Result<()> {
37 self.jira
38 .post::<(), TransitionTriggerOptions>(
39 "api",
40 &format!("/issue/{}/transitions", self.key),
41 trans,
42 )
43 .or_else(|e| match e {
44 Error::Serde(_) => Ok(()),
45 e => Err(e),
46 })
47 }
48}