use std::borrow::Cow;
use gitlab::api::common::NameOrId;
use gitlab::api::endpoint_prelude::{BodyError, Endpoint, FormParams, Method};
pub struct CreateMergeRequestDiscussionNote {
pub project: NameOrId<'static>,
pub merge_request: u64,
pub discussion_id: String,
pub body: String,
}
impl Endpoint for CreateMergeRequestDiscussionNote {
fn method(&self) -> Method {
Method::POST
}
fn endpoint(&self) -> Cow<'static, str> {
format!(
"projects/{}/merge_requests/{}/discussions/{}/notes",
self.project, self.merge_request, self.discussion_id,
)
.into()
}
fn body(&self) -> Result<Option<(&'static str, Vec<u8>)>, BodyError> {
let mut params = FormParams::default();
params.push("body", self.body.as_str());
params.into_body()
}
}
pub struct ResolveMergeRequestDiscussion {
pub project: NameOrId<'static>,
pub merge_request: u64,
pub discussion_id: String,
pub resolved: bool,
}
impl Endpoint for ResolveMergeRequestDiscussion {
fn method(&self) -> Method {
Method::PUT
}
fn endpoint(&self) -> Cow<'static, str> {
format!(
"projects/{}/merge_requests/{}/discussions/{}",
self.project, self.merge_request, self.discussion_id,
)
.into()
}
fn body(&self) -> Result<Option<(&'static str, Vec<u8>)>, BodyError> {
let mut params = FormParams::default();
params.push("resolved", self.resolved);
params.into_body()
}
}