feat: allow passing auth token for chat
This commit is contained in:
parent
52ed43745d
commit
c6f9d34490
3 changed files with 19 additions and 9 deletions
|
@ -37,7 +37,7 @@ impl History {
|
||||||
|
|
||||||
|
|
||||||
pub async fn run<T: ratatui::backend::Backend>(term: &mut Terminal<T>, args: crate::Args) -> Result<(), Box<dyn std::error::Error>> {
|
pub async fn run<T: ratatui::backend::Backend>(term: &mut Terminal<T>, args: crate::Args) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let mut chat = Chat::register(&args.server).await?;
|
let mut chat = Chat::register(&args.server, args.token).await?;
|
||||||
|
|
||||||
let mut stream = crossterm::event::EventStream::new();
|
let mut stream = crossterm::event::EventStream::new();
|
||||||
let mut input = String::new();
|
let mut input = String::new();
|
||||||
|
|
22
src/chat.rs
22
src/chat.rs
|
@ -55,15 +55,21 @@ pub struct Chat {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Chat {
|
impl Chat {
|
||||||
pub async fn register(server: &str) -> Result<Chat, ChatError> {
|
pub async fn register(server: &str, token: Option<String>) -> Result<Chat, ChatError> {
|
||||||
let registration : RegisterResponse = reqwest::Client::new()
|
let token = match token {
|
||||||
.post(format!("https://{server}/api/chat/register"))
|
Some(t) => t,
|
||||||
.send()
|
None => {
|
||||||
.await?
|
let registration : RegisterResponse = reqwest::Client::new()
|
||||||
.json()
|
.post(format!("https://{server}/api/chat/register"))
|
||||||
.await?;
|
.send()
|
||||||
|
.await?
|
||||||
|
.json()
|
||||||
|
.await?;
|
||||||
|
registration.access_token
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
let ws_url = format!("wss://{server}/ws?accessToken={}", registration.access_token);
|
let ws_url = format!("wss://{server}/ws?accessToken={token}");
|
||||||
|
|
||||||
let (ws, _response) = tokio_tungstenite::connect_async(ws_url).await?;
|
let (ws, _response) = tokio_tungstenite::connect_async(ws_url).await?;
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,10 @@ mod proto;
|
||||||
struct Args {
|
struct Args {
|
||||||
/// owncast server to connect to
|
/// owncast server to connect to
|
||||||
server: String,
|
server: String,
|
||||||
|
|
||||||
|
/// access token to use for login
|
||||||
|
#[arg(long)]
|
||||||
|
token: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::main(flavor = "current_thread")]
|
#[tokio::main(flavor = "current_thread")]
|
||||||
|
|
Loading…
Reference in a new issue