Skip to content

Commit 6c2579c

Browse files
committed
Add check for unauthorized - refresh token
1 parent d0c5a1d commit 6c2579c

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/client.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use hyper::client::HttpConnector;
55
use hyper::{body, body::Buf, client, header, Body, Client, Method, Request, Response, Uri};
66
use hyper_rustls::HttpsConnector;
77
use libflate::gzip;
8+
use log::error;
89
use once_cell::sync::Lazy;
910
use percent_encoding::{percent_encode, CONTROLS};
1011
use serde_json::Value;
@@ -13,7 +14,7 @@ use std::{io, result::Result};
1314
use tokio::sync::RwLock;
1415

1516
use crate::dbg_msg;
16-
use crate::oauth::{token_daemon, Oauth};
17+
use crate::oauth::{force_refresh_token, token_daemon, Oauth};
1718
use crate::server::RequestExt;
1819
use crate::utils::format_url;
1920

@@ -335,6 +336,8 @@ pub async fn json(path: String, quarantine: bool) -> Result<Value, String> {
335336
}
336337
}
337338
Err(e) => {
339+
error!("Got a bad response from reddit {e} - forcing a token refresh. Status code: {status}");
340+
let _ = force_refresh_token().await;
338341
if status.is_server_error() {
339342
Err("Reddit is having issues, check if there's an outage".to_string())
340343
} else {

src/oauth.rs

+5
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ pub async fn token_daemon() {
129129
}
130130
}
131131
}
132+
133+
pub async fn force_refresh_token() {
134+
OAUTH_CLIENT.write().await.refresh().await;
135+
}
136+
132137
#[derive(Debug, Clone, Default)]
133138
struct Device {
134139
oauth_id: String,

0 commit comments

Comments
 (0)