From 0efecf946ec9342467e6775a29ae03e9655a607d Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sun, 8 Dec 2024 22:31:37 +0000 Subject: [PATCH] refactor(trello): rename module types as model --- src/trello/api/members.rs | 7 +++---- src/trello/api/tests/mod.rs | 5 +++-- src/trello/boards.rs | 10 ++++++---- src/trello/client.rs | 2 +- src/trello/mod.rs | 19 +++++++++++++------ src/trello/{types => model}/auth.rs | 12 +++++++----- src/trello/{types => model}/board.rs | 4 ++-- src/trello/{types => model}/card.rs | 0 src/trello/model/list.rs | 8 ++++++++ src/trello/{types => model}/mod.rs | 13 +++---------- src/trello/{types => model}/new_card.rs | 0 src/trello/types/list.rs | 10 ---------- 12 files changed, 46 insertions(+), 44 deletions(-) rename src/trello/{types => model}/auth.rs (70%) rename src/trello/{types => model}/board.rs (66%) rename src/trello/{types => model}/card.rs (100%) create mode 100644 src/trello/model/list.rs rename src/trello/{types => model}/mod.rs (61%) rename src/trello/{types => model}/new_card.rs (100%) delete mode 100644 src/trello/types/list.rs diff --git a/src/trello/api/members.rs b/src/trello/api/members.rs index 8e6571c..3b84b69 100644 --- a/src/trello/api/members.rs +++ b/src/trello/api/members.rs @@ -1,12 +1,11 @@ // use kxio::{net::Net, print::Printer}; -use crate::trello::TrelloConfig; use crate::{ api_result::APIResult, trello::{ - types::{auth::TrelloAuth, board::TrelloBoard}, - url, + model::{auth::TrelloAuth, board::TrelloBoard}, + url, TrelloConfig, }, }; @@ -50,7 +49,7 @@ pub(crate) async fn get_boards_that_member_belongs_to( }; APIResult::new( net.get(url("/members/me/boards?lists=open")) - .headers(auth.into()) + .headers((&auth).into()) .header("Accept", "application/json") .send() .await, diff --git a/src/trello/api/tests/mod.rs b/src/trello/api/tests/mod.rs index b6fdd4b..1fa3797 100644 --- a/src/trello/api/tests/mod.rs +++ b/src/trello/api/tests/mod.rs @@ -6,7 +6,9 @@ use serde_json::json; use crate::{ s, - trello::{api::members::get_boards_that_member_belongs_to, types::board::TrelloBoard}, + trello::{ + api::members::get_boards_that_member_belongs_to, model::board::TrelloBoard, TrelloConfig, + }, }; mod given; @@ -15,7 +17,6 @@ type TestResult = color_eyre::Result<()>; mod members { use super::*; - use crate::trello::TrelloConfig; #[tokio::test] async fn get_member_boards() -> TestResult { diff --git a/src/trello/boards.rs b/src/trello/boards.rs index 9017795..2b9f7a0 100644 --- a/src/trello/boards.rs +++ b/src/trello/boards.rs @@ -1,10 +1,12 @@ // use clap::Parser; -use crate::execute::Execute; -use crate::trello::types::board::TrelloBoard; -use crate::trello::types::TrelloBoardName; -use crate::{p, FullCtx}; +use crate::{ + execute::Execute, + p, + trello::model::{board::TrelloBoard, TrelloBoardName}, + FullCtx, +}; #[derive(Parser, Debug)] pub(crate) enum TrelloBoardCommand { diff --git a/src/trello/client.rs b/src/trello/client.rs index d39c001..f2dd728 100644 --- a/src/trello/client.rs +++ b/src/trello/client.rs @@ -1,6 +1,6 @@ // use crate::api_result::APIResult; -use crate::trello::types::board::TrelloBoard; +use crate::trello::model::board::TrelloBoard; use crate::trello::TrelloConfig; use crate::FullCtx; diff --git a/src/trello/mod.rs b/src/trello/mod.rs index ba10d58..6af0843 100644 --- a/src/trello/mod.rs +++ b/src/trello/mod.rs @@ -2,16 +2,23 @@ pub(crate) mod api; pub(crate) mod boards; pub(crate) mod client; -pub(crate) mod types; +pub(crate) mod model; // #[cfg(test)] // mod tests; -use crate::execute::Execute; -use crate::trello::boards::TrelloBoardCommand; -use crate::trello::types::auth::{TrelloApiKey, TrelloApiSecret}; -use crate::trello::types::TrelloBoardName; -use crate::{f, FullCtx}; +use crate::{ + execute::Execute, + f, + trello::{ + boards::TrelloBoardCommand, + model::{ + auth::{TrelloApiKey, TrelloApiSecret}, + TrelloBoardName, + }, + }, + FullCtx, +}; use clap::Parser; pub(crate) fn url(path: impl Into) -> String { diff --git a/src/trello/types/auth.rs b/src/trello/model/auth.rs similarity index 70% rename from src/trello/types/auth.rs rename to src/trello/model/auth.rs index 273b189..2cae623 100644 --- a/src/trello/types/auth.rs +++ b/src/trello/model/auth.rs @@ -1,25 +1,27 @@ -// use std::collections::HashMap; +// use derive_more::derive::Display; use crate::newtype; -newtype!(TrelloApiKey, String, Display, "API Key"); +newtype!(TrelloApiKey, String, Display, PartialOrd, Ord, "API Key"); newtype!( TrelloApiSecret, String, Display, + PartialOrd, + Ord, "API Secret token for Trello" ); #[derive(Debug, Clone)] -pub struct TrelloAuth<'cfg> { +pub(crate) struct TrelloAuth<'cfg> { pub(crate) api_key: &'cfg TrelloApiKey, pub(crate) api_secret: &'cfg TrelloApiSecret, } -impl From> for HashMap { - fn from(value: TrelloAuth) -> Self { +impl From<&TrelloAuth<'_>> for HashMap { + fn from(value: &TrelloAuth) -> Self { HashMap::from([( "Authorization".into(), format!( diff --git a/src/trello/types/board.rs b/src/trello/model/board.rs similarity index 66% rename from src/trello/types/board.rs rename to src/trello/model/board.rs index 1b5c8ef..6d70899 100644 --- a/src/trello/types/board.rs +++ b/src/trello/model/board.rs @@ -1,6 +1,6 @@ // -use crate::trello::types::list::TrelloList; -use crate::trello::types::{TrelloBoardId, TrelloBoardName}; +use super::{TrelloBoardId, TrelloBoardName}; +use crate::trello::model::list::TrelloList; #[derive(Clone, Debug, PartialEq, Eq, serde::Deserialize)] pub(crate) struct TrelloBoard { diff --git a/src/trello/types/card.rs b/src/trello/model/card.rs similarity index 100% rename from src/trello/types/card.rs rename to src/trello/model/card.rs diff --git a/src/trello/model/list.rs b/src/trello/model/list.rs new file mode 100644 index 0000000..5b6c0d3 --- /dev/null +++ b/src/trello/model/list.rs @@ -0,0 +1,8 @@ +// +use super::{TrelloListId, TrelloListName}; + +#[derive(Debug, Clone, PartialEq, Eq, serde::Deserialize)] +pub(crate) struct TrelloList { + pub(crate) id: TrelloListId, + pub(crate) name: TrelloListName, +} diff --git a/src/trello/types/mod.rs b/src/trello/model/mod.rs similarity index 61% rename from src/trello/types/mod.rs rename to src/trello/model/mod.rs index e983aa4..8d9df06 100644 --- a/src/trello/types/mod.rs +++ b/src/trello/model/mod.rs @@ -9,14 +9,7 @@ use derive_more::derive::Display; use crate::newtype; newtype!(TrelloBoardId, String, Display, "Board ID"); -newtype!( - TrelloBoardName, - String, - Display, - PartialOrd, - Ord, - "Board Name" -); +newtype!(TrelloBoardName, String, Display, "Board Name"); newtype!(TrelloListId, String, "List ID"); newtype!( TrelloListName, @@ -26,5 +19,5 @@ newtype!( Ord, "List Name" ); -// newtype!(TrelloCardId, String, Display, "Card ID"); -// newtype!(TrelloCardName, String, Display, "Card Name"); +newtype!(TrelloCardId, String, Display, "Card ID"); +newtype!(TrelloCardName, String, Display, "Card Name"); diff --git a/src/trello/types/new_card.rs b/src/trello/model/new_card.rs similarity index 100% rename from src/trello/types/new_card.rs rename to src/trello/model/new_card.rs diff --git a/src/trello/types/list.rs b/src/trello/types/list.rs deleted file mode 100644 index aeebf93..0000000 --- a/src/trello/types/list.rs +++ /dev/null @@ -1,10 +0,0 @@ -// -use derive_more::derive::Constructor; - -use crate::trello::types::{TrelloListId, TrelloListName}; - -#[derive(Debug, Clone, PartialEq, Eq, serde::Deserialize, Constructor)] -pub(crate) struct TrelloList { - pub(crate) id: TrelloListId, - pub(crate) name: TrelloListName, -}