mirror of
https://github.com/sergi0g/cup.git
synced 2025-11-17 17:43:37 -05:00
chore: remove v2 API endpoints
This commit is contained in:
@@ -7,7 +7,7 @@ use crate::{
|
|||||||
status::Status,
|
status::Status,
|
||||||
update::{Update, UpdateInfo},
|
update::{Update, UpdateInfo},
|
||||||
},
|
},
|
||||||
utils::{json::to_simple_json, sort_update_vec::sort_update_vec},
|
utils::{json::to_json, sort_update_vec::sort_update_vec},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn print_updates(updates: &[Update], icons: &bool) {
|
pub fn print_updates(updates: &[Update], icons: &bool) {
|
||||||
@@ -164,5 +164,5 @@ pub fn print_updates(updates: &[Update], icons: &bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn print_raw_updates(updates: &[Update]) {
|
pub fn print_raw_updates(updates: &[Update]) {
|
||||||
println!("{}", to_simple_json(updates));
|
println!("{}", to_json(updates));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ use crate::{
|
|||||||
error,
|
error,
|
||||||
structs::update::Update,
|
structs::update::Update,
|
||||||
utils::{
|
utils::{
|
||||||
json::{to_full_json, to_simple_json},
|
json::to_json,
|
||||||
sort_update_vec::sort_update_vec,
|
sort_update_vec::sort_update_vec,
|
||||||
time::{elapsed, now},
|
time::{elapsed, now},
|
||||||
},
|
},
|
||||||
@@ -91,9 +91,7 @@ pub async fn serve(port: &u16, ctx: &Context) -> std::io::Result<()> {
|
|||||||
ctx.logger.info("Ready to start!");
|
ctx.logger.info("Ready to start!");
|
||||||
let mut app_builder = App::new()
|
let mut app_builder = App::new()
|
||||||
.with_state(data)
|
.with_state(data)
|
||||||
.at("/api/v2/json", get(handler_service(api_simple)))
|
.at("/api/v3/json", get(handler_service(json)))
|
||||||
.at("/api/v3/json", get(handler_service(api_full)))
|
|
||||||
.at("/api/v2/refresh", get(handler_service(refresh)))
|
|
||||||
.at("/api/v3/refresh", get(handler_service(refresh)));
|
.at("/api/v3/refresh", get(handler_service(refresh)));
|
||||||
if !ctx.config.agent {
|
if !ctx.config.agent {
|
||||||
app_builder = app_builder
|
app_builder = app_builder
|
||||||
@@ -148,20 +146,11 @@ async fn _static(data: StateRef<'_, Arc<Mutex<ServerData>>>, path: PathRef<'_>)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn api_simple(data: StateRef<'_, Arc<Mutex<ServerData>>>) -> WebResponse {
|
async fn json(data: StateRef<'_, Arc<Mutex<ServerData>>>) -> WebResponse {
|
||||||
WebResponse::builder()
|
WebResponse::builder()
|
||||||
.header("Content-Type", "application/json")
|
.header("Content-Type", "application/json")
|
||||||
.body(ResponseBody::from(
|
.body(ResponseBody::from(
|
||||||
data.lock().await.simple_json.clone().to_string(),
|
data.lock().await.json.clone().to_string(),
|
||||||
))
|
|
||||||
.unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn api_full(data: StateRef<'_, Arc<Mutex<ServerData>>>) -> WebResponse {
|
|
||||||
WebResponse::builder()
|
|
||||||
.header("Content-Type", "application/json")
|
|
||||||
.body(ResponseBody::from(
|
|
||||||
data.lock().await.full_json.clone().to_string(),
|
|
||||||
))
|
))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
@@ -174,8 +163,7 @@ async fn refresh(data: StateRef<'_, Arc<Mutex<ServerData>>>) -> WebResponse {
|
|||||||
struct ServerData {
|
struct ServerData {
|
||||||
template: String,
|
template: String,
|
||||||
raw_updates: Vec<Update>,
|
raw_updates: Vec<Update>,
|
||||||
simple_json: Value,
|
json: Value,
|
||||||
full_json: Value,
|
|
||||||
ctx: Context,
|
ctx: Context,
|
||||||
theme: &'static str,
|
theme: &'static str,
|
||||||
}
|
}
|
||||||
@@ -185,8 +173,7 @@ impl ServerData {
|
|||||||
let mut s = Self {
|
let mut s = Self {
|
||||||
ctx: ctx.clone(),
|
ctx: ctx.clone(),
|
||||||
template: String::new(),
|
template: String::new(),
|
||||||
simple_json: Value::Null,
|
json: Value::Null,
|
||||||
full_json: Value::Null,
|
|
||||||
raw_updates: Vec::new(),
|
raw_updates: Vec::new(),
|
||||||
theme: "neutral",
|
theme: "neutral",
|
||||||
};
|
};
|
||||||
@@ -210,19 +197,17 @@ impl ServerData {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.parse(HTML)
|
.parse(HTML)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
self.simple_json = to_simple_json(&self.raw_updates);
|
self.json = to_json(&self.raw_updates);
|
||||||
self.full_json = to_full_json(&self.raw_updates);
|
|
||||||
let last_updated = Local::now();
|
let last_updated = Local::now();
|
||||||
self.simple_json["last_updated"] = last_updated
|
self.json["last_updated"] = last_updated
|
||||||
.to_rfc3339_opts(chrono::SecondsFormat::Secs, true)
|
.to_rfc3339_opts(chrono::SecondsFormat::Secs, true)
|
||||||
.to_string()
|
.to_string()
|
||||||
.into();
|
.into();
|
||||||
self.full_json["last_updated"] = self.simple_json["last_updated"].clone();
|
|
||||||
self.theme = match &self.ctx.config.theme {
|
self.theme = match &self.ctx.config.theme {
|
||||||
Theme::Default => "neutral",
|
Theme::Default => "neutral",
|
||||||
Theme::Blue => "gray",
|
Theme::Blue => "gray",
|
||||||
};
|
};
|
||||||
let mut metrics = self.simple_json["metrics"]
|
let mut metrics = self.json["metrics"]
|
||||||
.as_object()
|
.as_object()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.iter()
|
.iter()
|
||||||
|
|||||||
@@ -104,4 +104,4 @@ impl Update {
|
|||||||
status => status.clone(),
|
status => status.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// Functions that return JSON data, used for generating output and API responses
|
// Functions that return JSON data, used for generating output and API responses
|
||||||
|
|
||||||
use serde_json::{json, Map, Value};
|
use serde_json::{json, Value};
|
||||||
|
|
||||||
use crate::structs::{status::Status, update::Update};
|
use crate::structs::{status::Status, update::Update};
|
||||||
|
|
||||||
@@ -47,27 +47,8 @@ pub fn get_metrics(updates: &[Update]) -> Value {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Takes a slice of `Image` objects and returns a `Value` with update info. The output doesn't contain much detail
|
|
||||||
pub fn to_simple_json(updates: &[Update]) -> Value {
|
|
||||||
let mut update_map = Map::new();
|
|
||||||
updates.iter().for_each(|update| {
|
|
||||||
let _ = update_map.insert(
|
|
||||||
update.reference.clone(),
|
|
||||||
match update.result.has_update {
|
|
||||||
Some(has_update) => Value::Bool(has_update),
|
|
||||||
None => Value::Null,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
});
|
|
||||||
let json_data: Value = json!({
|
|
||||||
"metrics": get_metrics(updates),
|
|
||||||
"images": updates,
|
|
||||||
});
|
|
||||||
json_data
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Takes a slice of `Image` objects and returns a `Value` with update info. All image data is included, useful for debugging.
|
/// Takes a slice of `Image` objects and returns a `Value` with update info. All image data is included, useful for debugging.
|
||||||
pub fn to_full_json(updates: &[Update]) -> Value {
|
pub fn to_json(updates: &[Update]) -> Value {
|
||||||
json!({
|
json!({
|
||||||
"metrics": get_metrics(updates),
|
"metrics": get_metrics(updates),
|
||||||
"images": updates.iter().map(|update| serde_json::to_value(update).unwrap()).collect::<Vec<Value>>(),
|
"images": updates.iter().map(|update| serde_json::to_value(update).unwrap()).collect::<Vec<Value>>(),
|
||||||
|
|||||||
Reference in New Issue
Block a user