Rename TogglClient to TogglApiClient

This commit is contained in:
Joshua Coles 2024-03-01 21:18:16 +00:00
parent 82d9cf5c87
commit 1df76ea573
3 changed files with 15 additions and 15 deletions

View File

@ -8,7 +8,7 @@ use tracing::log::debug;
use crate::types::{Current, Project, ProjectClient, ReportEntry, TogglQuery};
#[derive(Debug, Clone)]
pub struct TogglClient {
pub struct TogglApiClient {
client: Client,
workspace_id: String,
base_url: String,
@ -17,7 +17,7 @@ pub struct TogglClient {
headers: HeaderMap,
}
impl TogglClient {
impl TogglApiClient {
pub async fn check_health(&self) -> bool {
true
}

View File

@ -1,4 +1,4 @@
use crate::client::TogglClient;
use crate::api_client::TogglApiClient;
use crate::entity::prelude::TimeEntry;
use crate::entity::time_entry;
use crate::entity::time_entry::ActiveModel;
@ -25,7 +25,7 @@ use std::net::SocketAddr;
use tower_http::trace::TraceLayer;
use tracing::{debug, instrument};
mod client;
mod api_client;
mod db;
mod entity;
mod poll;
@ -54,7 +54,7 @@ struct Config {
#[instrument(skip(db, toggl_client))]
pub async fn report(
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
Extension(db): Extension<DatabaseConnection>,
Json(query): Json<TogglQuery>,
) -> Result<Json<Vec<ReportEntry>>> {
@ -107,14 +107,14 @@ async fn cache_report(
#[instrument(skip(toggl_client))]
pub async fn current(
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
) -> Result<Json<Option<Current>>> {
Ok(toggl_client.get_current().await.map(Json)?)
}
#[instrument(skip(toggl_client))]
pub async fn start_time_entry(
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
Json(body): Json<HashMap<String, Value>>,
) -> Result<impl IntoResponse> {
toggl_client.start_time_entry(body).await?;
@ -125,7 +125,7 @@ pub async fn start_time_entry(
#[instrument(skip(db, toggl_client))]
async fn projects(
Extension(db): Extension<DatabaseConnection>,
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
) -> Result<Json<Vec<Project>>> {
let projects = toggl_client.fetch_projects().await?;
@ -140,7 +140,7 @@ async fn projects(
#[instrument(skip(toggl_client, db))]
async fn clients(
Extension(db): Extension<DatabaseConnection>,
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
) -> Result<Json<Vec<ProjectClient>>> {
let clients = toggl_client.fetch_clients().await?;
entity::client::Entity::insert_many(clients.iter().map(ProjectClient::as_model))
@ -151,7 +151,7 @@ async fn clients(
Ok(Json(clients))
}
async fn health(Extension(toggl_client): Extension<TogglClient>) -> Result<&'static str> {
async fn health(Extension(toggl_client): Extension<TogglApiClient>) -> Result<&'static str> {
return if toggl_client.check_health().await {
Ok("Ok")
} else {
@ -166,7 +166,7 @@ struct RefreshQuery {
#[instrument(skip(toggl_client, db))]
async fn refresh(
Extension(toggl_client): Extension<TogglClient>,
Extension(toggl_client): Extension<TogglApiClient>,
Extension(db): Extension<DatabaseConnection>,
Query(RefreshQuery { start_date }): Query<RefreshQuery>,
) -> Result<&'static str> {
@ -228,7 +228,7 @@ async fn main() -> Result<()> {
tracing_subscriber::fmt::init();
let config = Config::parse();
let toggl_client = TogglClient::new(
let toggl_client = TogglApiClient::new(
&config.workspace_id.to_string(),
&STANDARD.encode(&format!("{}:api_token", config.toggl_api_token)),
);

View File

@ -1,4 +1,4 @@
use crate::client::TogglClient;
use crate::api_client::TogglApiClient;
use crate::entity::{client, project, time_entry};
use crate::types::{Project, ProjectClient, TogglQuery};
use sea_orm::{DatabaseConnection, EntityTrait, QuerySelect};
@ -6,7 +6,7 @@ use tracing::instrument;
use crate::{day_exclusivity_condition, utils};
#[tracing::instrument(skip(client, db))]
pub async fn poll_job(client: TogglClient, db: DatabaseConnection, poll_period: u64) {
pub async fn poll_job(client: TogglApiClient, db: DatabaseConnection, poll_period: u64) {
// Every 2h, poll the Toggl API for new time entries for today to cache them in the database
let period = tokio::time::Duration::from_secs(poll_period);
@ -31,7 +31,7 @@ pub async fn poll_job(client: TogglClient, db: DatabaseConnection, poll_period:
#[instrument(skip(client, db))]
pub async fn perform_poll(
client: &TogglClient,
client: &TogglApiClient,
db: &DatabaseConnection,
) -> utils::Result<usize> {
let now = chrono::Utc::now();