Desyncs in progress
This commit is contained in:
parent
1bcdcda955
commit
e99d84f078
3 changed files with 26 additions and 9 deletions
|
@ -4,7 +4,6 @@ use reqwest_middleware::{ClientBuilder, ClientWithMiddleware, RequestBuilder};
|
||||||
use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware};
|
use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware};
|
||||||
use reqwest_tracing::TracingMiddleware;
|
use reqwest_tracing::TracingMiddleware;
|
||||||
use serde::de;
|
use serde::de;
|
||||||
use tracing::debug;
|
|
||||||
|
|
||||||
pub struct Client {
|
pub struct Client {
|
||||||
client: ClientWithMiddleware,
|
client: ClientWithMiddleware,
|
||||||
|
@ -18,6 +17,7 @@ pub trait ResourceRequest {
|
||||||
impl ResourceRequest for RequestBuilder {
|
impl ResourceRequest for RequestBuilder {
|
||||||
async fn res<T: de::DeserializeOwned>(self) -> Result<T> {
|
async fn res<T: de::DeserializeOwned>(self) -> Result<T> {
|
||||||
/*
|
/*
|
||||||
|
use tracing::debug;
|
||||||
let body = self.send().await?.text().await?;
|
let body = self.send().await?.text().await?;
|
||||||
debug!(body);
|
debug!(body);
|
||||||
serde_json::from_str(&body).map_err(|e| e.into())
|
serde_json::from_str(&body).map_err(|e| e.into())
|
||||||
|
|
|
@ -37,9 +37,6 @@ async fn run() -> Result<()> {
|
||||||
let gitlab_user = tasks.gitlab.me().await?;
|
let gitlab_user = tasks.gitlab.me().await?;
|
||||||
info!("{gitlab_user:#?}");
|
info!("{gitlab_user:#?}");
|
||||||
let jira_user = tasks.jira.me().await?;
|
let jira_user = tasks.jira.me().await?;
|
||||||
info!("{jira_user:#?}");
|
info!("{:?}", tasks.desyncs().await?);
|
||||||
let issues = tasks.jira.assigned_open_issues().await?;
|
|
||||||
info!("{issues:#?}");
|
|
||||||
info!("{}", issues.len());
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
28
src/tasks.rs
28
src/tasks.rs
|
@ -1,6 +1,7 @@
|
||||||
use std::{collections::HashSet, env, process::Command};
|
use std::{collections::HashSet, env, process::Command};
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use sled::IVec;
|
||||||
|
|
||||||
use crate::{gitlab::GitLab, jira::Jira, result::Result};
|
use crate::{gitlab::GitLab, jira::Jira, result::Result};
|
||||||
|
|
||||||
|
@ -28,6 +29,20 @@ pub struct Tasks {
|
||||||
db: sled::Db,
|
db: sled::Db,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl TryFrom<IVec> for Task {
|
||||||
|
type Error = anyhow::Error;
|
||||||
|
|
||||||
|
fn try_from(value: IVec) -> std::prelude::v1::Result<Self, Self::Error> {
|
||||||
|
serde_json::from_slice(&value).map_err(|e| e.into())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Desyncs {
|
||||||
|
issues: Vec<crate::jira::Issue>,
|
||||||
|
tasks: Vec<Task>,
|
||||||
|
}
|
||||||
|
|
||||||
impl Tasks {
|
impl Tasks {
|
||||||
pub fn try_new() -> Result<Self> {
|
pub fn try_new() -> Result<Self> {
|
||||||
let gl_token = env::var("GITLAB_TOKEN").or_else(|_| -> Result<String> {
|
let gl_token = env::var("GITLAB_TOKEN").or_else(|_| -> Result<String> {
|
||||||
|
@ -53,15 +68,20 @@ impl Tasks {
|
||||||
Ok(Self { gitlab, jira, db })
|
Ok(Self { gitlab, jira, db })
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn all(&self) -> Result<Vec<Task>> {
|
pub fn all(&self) -> Result<Vec<Task>> {
|
||||||
Ok(vec![])
|
self.db
|
||||||
|
.open_tree("tasks")?
|
||||||
|
.scan_prefix(&[])
|
||||||
|
.map(|t| Task::try_from(t?.1))
|
||||||
|
.collect::<Result<Vec<Task>>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// fetches jira issues and compares to known local tasks
|
/// fetches jira issues and compares to known local tasks
|
||||||
/// for use when sync'ing local tasks to remote state (jira, gitlab)
|
/// for use when sync'ing local tasks to remote state (jira, gitlab)
|
||||||
pub async fn desyncs(&self) -> Result<()> {
|
pub async fn desyncs(&self) -> Result<Desyncs> {
|
||||||
let issues = self.jira.assigned_open_issues().await?;
|
let issues = self.jira.assigned_open_issues().await?;
|
||||||
|
let tasks = self.all()?;
|
||||||
|
|
||||||
Ok(())
|
Ok(Desyncs { issues, tasks })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue