Skip to content

Commit

Permalink
fix: logs init fixed, better cli response for check-status, impl Debu…
Browse files Browse the repository at this point in the history
…g for Archival Status responses
  • Loading branch information
yellowHatpro committed Sep 29, 2024
1 parent 85b1421 commit 33077fd
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 16 deletions.
33 changes: 29 additions & 4 deletions src/archival/archival_response.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use serde::Deserialize;
use std::fmt;

#[derive(Deserialize, Debug, PartialEq)]
pub struct ArchivalResponse {
Expand All @@ -13,7 +14,7 @@ pub struct ArchivalErrorResponse {
pub status_ext: String,
}

#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[derive(Default, Clone, PartialEq, Deserialize)]
pub struct ArchivalStatusResponse {
pub duration_sec: Option<f64>,
pub http_status: Option<i64>,
Expand All @@ -23,10 +24,34 @@ pub struct ArchivalStatusResponse {
pub timestamp: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[derive(Default, Clone, PartialEq, Deserialize)]
pub struct ArchivalStatusErrorResponse {
pub job_id: String,
pub message: String,
pub status_ext: String,
pub message: Option<String>,
pub status_ext: Option<String>,
pub status: Option<String>,
}

impl fmt::Debug for ArchivalStatusResponse {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("Archival Status Response")
.field("duration_sec", &self.duration_sec.unwrap_or_default())
.field("http_status", &self.http_status.unwrap_or_default())
.field("job_id", &self.job_id)
.field("original_url", &self.original_url.as_deref().unwrap_or(""))
.field("status", &self.status)
.field("timestamp", &self.timestamp.as_deref().unwrap_or(""))
.finish()
}
}

impl fmt::Debug for ArchivalStatusErrorResponse {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("Archival Status Error Response")
.field("job_id", &self.job_id)
.field("message", &self.message.as_deref().unwrap_or("")) // Unwrap Option<String> or use an empty string
.field("status_ext", &self.status_ext.as_deref().unwrap_or("")) // Unwrap Option<String> or use an empty string
.field("status", &self.status.as_deref().unwrap_or("")) // Unwrap Option<String> or use an empty string
.finish()
}
}
12 changes: 9 additions & 3 deletions src/archival/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,15 @@ pub async fn make_archival_status_request(
let response_text = response.text().await?;

if let Ok(res) = serde_json::from_str::<ArchivalStatusResponse>(&response_text) {
if res.status != "error" {
return Ok(res);
}
return if res.status != "error" {
Ok(res)
} else {
let archival_status_error_response =
serde_json::from_str::<ArchivalStatusErrorResponse>(&response_text)?;
Err(ArchivalError::StatusRequestErrorResponse(
archival_status_error_response,
))
};
}
if let Ok(e) = serde_json::from_str::<ArchivalStatusErrorResponse>(&response_text) {
return Err(ArchivalError::StatusRequestErrorResponse(e));
Expand Down
3 changes: 2 additions & 1 deletion src/cli/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ pub async fn start(pool: &PgPool) {
Some(Commands::CheckStatus { job_id }) => {
match utils::get_job_id_status(job_id.as_str(), pool).await {
Ok(res) => {
println!("Status: {}", res.status)
println!("Status: {}", res.status);
println!("{:?}", res)
}
Err(e) => {
println!("Failed: {}", e)
Expand Down
16 changes: 8 additions & 8 deletions src/configuration/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,22 +86,22 @@ impl Settings {

pub fn init_logger(&self) {
let mut builder = Builder::new();

if self.logs.debug {
builder.filter(None, LevelFilter::Debug);
}
if self.logs.info {
builder.filter(None, LevelFilter::Info);
if self.logs.error {
builder.filter(None, LevelFilter::Error);
}
if self.logs.warning {
builder.filter(None, LevelFilter::Warn);
}
if self.logs.error {
builder.filter(None, LevelFilter::Error);
if self.logs.info {
builder.filter(None, LevelFilter::Info);
}
if self.logs.debug {
builder.filter(None, LevelFilter::Debug);
}
if !self.logs.debug && !self.logs.info && !self.logs.warning && !self.logs.error {
builder.filter(None, LevelFilter::Off);
}

builder.filter_module("sqlx", LevelFilter::Info);
builder.filter_module("hyper", LevelFilter::Info);
builder.filter_module("reqwest", LevelFilter::Info);
Expand Down

0 comments on commit 33077fd

Please sign in to comment.