feat: add server list page
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
use std::{env, str::FromStr, sync::Mutex, time::Duration};
|
||||
|
||||
use sqlx::{
|
||||
ConnectOptions, Sqlite, SqlitePool,
|
||||
pool::PoolConnection,
|
||||
sqlite::{SqliteConnectOptions, SqliteJournalMode, SqlitePoolOptions, SqliteSynchronous},
|
||||
SqlitePool,
|
||||
sqlite::{SqliteConnectOptions, SqliteJournalMode, SqliteSynchronous},
|
||||
};
|
||||
|
||||
static DATABASE_POOL: Mutex<Option<SqlitePool>> = Mutex::new(None);
|
||||
|
||||
@@ -19,14 +19,15 @@ pub async fn get_access_token() -> Result<String, Box<dyn Error>> {
|
||||
let pool = db::get_pool().await?;
|
||||
let tok = query!("SELECT * FROM tokens WHERE is_refresh = 0 ORDER BY expires_at DESC LIMIT 1")
|
||||
.fetch_one(&pool)
|
||||
.await?
|
||||
.token;
|
||||
.await?;
|
||||
|
||||
Ok(tok)
|
||||
dbg!(&tok);
|
||||
Ok(tok.token)
|
||||
}
|
||||
|
||||
pub async fn get_authed_api_config() -> Result<configuration::Configuration, Box<dyn Error>> {
|
||||
let mut conf = configuration::Configuration::default();
|
||||
conf.bearer_access_token = Some(get_access_token().await?);
|
||||
|
||||
Ok(conf)
|
||||
}
|
||||
|
||||
10
src/jobs.rs
10
src/jobs.rs
@@ -8,11 +8,13 @@ use crate::{auth, db};
|
||||
pub fn init_scheduler(rt: Handle) -> Scheduler {
|
||||
let scheduler = Scheduler::new();
|
||||
|
||||
let trigger_every_5min =
|
||||
Trigger::with_identity("5min_trigger", "default_group").every(Duration::from_mins(5));
|
||||
let trigger_every_5min = Trigger::with_identity("5min_trigger", "default_group")
|
||||
.every(Duration::from_mins(5))
|
||||
.repeat(u32::max_value());
|
||||
|
||||
let trigger_every_3min =
|
||||
Trigger::with_identity("3min_trigger", "default_group").every(Duration::from_mins(3));
|
||||
let trigger_every_3min = Trigger::with_identity("3min_trigger", "default_group")
|
||||
.every(Duration::from_mins(3))
|
||||
.repeat(u32::max_value());
|
||||
|
||||
let rt_cleanup = rt.clone();
|
||||
let cleanup_tokens_job = Job::with_identity("cleanup_tokens_job", "default_group", move || {
|
||||
|
||||
@@ -10,6 +10,7 @@ mod db;
|
||||
mod helper;
|
||||
mod jobs;
|
||||
mod models;
|
||||
mod servers;
|
||||
|
||||
#[get("/api/hello")]
|
||||
async fn hello() -> impl Responder {
|
||||
@@ -47,6 +48,7 @@ async fn main() -> std::io::Result<()> {
|
||||
.service(auth::is_scp_logged_in)
|
||||
.service(auth::start_flow)
|
||||
.service(auth::get_user)
|
||||
.service(servers::list_servers)
|
||||
.service(
|
||||
Files::new("/", "./frontend/dist")
|
||||
.index_file("index.html")
|
||||
|
||||
14
src/servers.rs
Normal file
14
src/servers.rs
Normal file
@@ -0,0 +1,14 @@
|
||||
use actix_web::{Responder, get};
|
||||
|
||||
use crate::helper;
|
||||
|
||||
#[get("/api/servers")]
|
||||
pub async fn list_servers() -> impl Responder {
|
||||
let config = helper::get_authed_api_config().await.unwrap();
|
||||
let response =
|
||||
scp_core::apis::default_api::api_v1_servers_get(&config, None, None, None, None, None)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
serde_json::to_string(&response).unwrap()
|
||||
}
|
||||
Reference in New Issue
Block a user