diff --git a/src/api/handlers.rs b/src/api/handlers.rs index aeead0d..bad3e4d 100644 --- a/src/api/handlers.rs +++ b/src/api/handlers.rs @@ -1,15 +1,16 @@ use std::{collections::HashMap, sync::atomic::Ordering}; use axum::{ - Json, + Json, Router, extract::{Path, State}, http::StatusCode, + routing::{get, post}, }; -use log::info; +use log::{error, info}; use serde::{Deserialize, Serialize}; use crate::{api::state::AppState, job::get::get_jobs}; -use crate::job::JobScheme; +use crate::{job::JobScheme, status::JobStatusEnum}; use crate::{ job::set::{add_job, remove_job}, status::get::get_status_log, @@ -40,7 +41,7 @@ pub async fn jobs_status(State(state): State) -> Json { pub async fn jobs_start( State(state): State, - Json(_payload): Json>, + Json(payload): Json>, ) -> Result, StatusCode> { // Prevent double-start if state.started.swap(true, Ordering::Relaxed) { @@ -146,7 +147,7 @@ impl From<&crate::status::JobStatusStruct> for JobResponse { pub async fn jobs_list( State(state): State, ) -> Result>, StatusCode> { - let _ap = state.auto_pilot.read().await; + let ap = state.auto_pilot.read().await; // ۱. تبدیل live_jobs به HashMap با کلیدِ id // این‌ها اولویت بالاتری دارن (نسخه‌های زنده) @@ -241,7 +242,7 @@ pub async fn jobs_delete(Path(id): Path) -> Result, + State(state): State, Path(id): Path, Json(payload): Json, ) -> Result, StatusCode> { diff --git a/src/api/state.rs b/src/api/state.rs index 8905b99..8dd0170 100644 --- a/src/api/state.rs +++ b/src/api/state.rs @@ -1,3 +1,4 @@ +use axum::{Json, Router, extract::State, http::StatusCode, routing::get}; use serde::Serialize; use std::sync::{Arc, atomic::AtomicBool}; use tokio::sync::RwLock; diff --git a/src/autopilot/mod.rs b/src/autopilot/mod.rs index cb8fe7b..62c4c4c 100644 --- a/src/autopilot/mod.rs +++ b/src/autopilot/mod.rs @@ -1,4 +1,5 @@ use colored::Colorize; +use futures::future::join_all; use log::{error, info, warn}; use tokio::task::JoinHandle; use tokio_cron_scheduler::JobScheduler; @@ -51,7 +52,7 @@ impl AutoPilot { info!("{}", "Autopilot reloaded successfully!".green()) } - pub fn start(&mut self, _verbose: bool) { + pub fn start(&mut self, verbose: bool) { // Self::prepare_logging(verbose); if Self::check_instance() { return; diff --git a/src/cli/list.rs b/src/cli/list.rs index fbf091b..83abe30 100644 --- a/src/cli/list.rs +++ b/src/cli/list.rs @@ -7,7 +7,7 @@ use crate::{ error::AutoPilotError, fs::get_autopilot_path, job::set::remove_job, - status::get::get_status_log, + status::{get::get_status_log, set::set_status_initial}, }; pub fn list() { diff --git a/src/cli/serve.rs b/src/cli/serve.rs index 6f1d5f2..5d8e79d 100644 --- a/src/cli/serve.rs +++ b/src/cli/serve.rs @@ -1,11 +1,15 @@ -use std::sync::{Arc, atomic::AtomicBool}; +use std::{ + sync::{Arc, atomic::AtomicBool}, + thread::sleep, + time::Duration, +}; use crate::{ api::{routes::start_api, state::AppState}, autopilot::AutoPilot, status::set::set_status_initial, }; -use log::{error, warn}; +use log::{error, info, warn}; use tokio::{self, signal, sync::RwLock}; pub async fn serve(verbose: bool, api: bool) { diff --git a/src/job/mod.rs b/src/job/mod.rs index bc44079..9a5d49e 100644 --- a/src/job/mod.rs +++ b/src/job/mod.rs @@ -1,10 +1,10 @@ -use std::{thread::sleep, time::Duration}; +use std::{sync::Arc, thread::sleep, time::Duration}; use colored::Colorize; use futures::future::join_all; use log::{error, info}; use serde::{Deserialize, Serialize}; -use tokio::task::JoinHandle; +use tokio::{sync::RwLock, task::JoinHandle}; use tokio_cron_scheduler::JobScheduler; use crate::{ diff --git a/src/job/set.rs b/src/job/set.rs index 41d9826..9fddec4 100644 --- a/src/job/set.rs +++ b/src/job/set.rs @@ -1,5 +1,6 @@ use std::{collections::HashMap, path::PathBuf}; +use serde_json::de; use crate::{ conditions::ConditionScheme, diff --git a/src/task/runner.rs b/src/task/runner.rs index f679c48..8af3e49 100644 --- a/src/task/runner.rs +++ b/src/task/runner.rs @@ -1,3 +1,4 @@ +use log::error; use crate::error::AutoPilotError; diff --git a/src/time/add.rs b/src/time/add.rs index 10ad4ed..7852300 100644 --- a/src/time/add.rs +++ b/src/time/add.rs @@ -5,6 +5,7 @@ use tokio_cron_scheduler::JobScheduler; use crate::{ error::AutoPilotError, job::Job, + status::JobStatusEnum, time::{When, to_cron_expression}, };