write workpackage on openproject

This commit is contained in:
2024-01-08 13:26:09 +01:00
parent 5b34a51d90
commit a17901a6d6
15 changed files with 739 additions and 82 deletions

36
src/openproject/work.rs Normal file
View File

@@ -0,0 +1,36 @@
use serde::{Deserialize, Serialize};
use crate::gitlab::issue::IssueBundle;
#[derive(Serialize, Debug)]
pub struct WorkPackageWriter {
subject: String,
#[serde(alias = "type")]
work_type: String,
description: DescriptionWriter,
}
#[derive(Serialize, Debug)]
pub struct DescriptionWriter {
format: String,
raw: String,
}
#[derive(Deserialize, Debug)]
pub struct WorkPackage {
pub id: u64,
pub subject: String,
}
impl From<&IssueBundle> for WorkPackageWriter {
fn from(value: &IssueBundle) -> Self {
WorkPackageWriter {
subject: format!("{} ({}/{})", value.issue.title, value.project.name_with_namespace, value.issue.iid),
work_type: "TASK".into(),
description: DescriptionWriter {
format: "markdown".into(),
raw: format!("From gitlab: {}", value.issue.web_url)
}
}
}
}