From 597148f500a19a313bcc5d686e1ef97f1fccc778 Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Sat, 2 Aug 2025 22:34:35 -0700 Subject: [PATCH] rename state to service --- src/app/mod.rs | 2 +- src/discovery.rs | 6 +++--- src/transfer.rs | 31 +++++++++++++++---------------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/app/mod.rs b/src/app/mod.rs index 449c933..4a67dc3 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -21,7 +21,7 @@ pub struct App { pub uploads: BTreeMap, upload_state: TableState, // for getting messages back from the web server or web client about things we've done; the - // other end is held by the state + // other end is held by the service event_listener: UnboundedReceiver, } diff --git a/src/discovery.rs b/src/discovery.rs index c691c2b..2e15a20 100644 --- a/src/discovery.rs +++ b/src/discovery.rs @@ -96,13 +96,13 @@ impl JoecalService { /// Axum request handler for receiving other devices' registration requests. pub async fn register_device( - State(state): State, + State(service): State, ConnectInfo(addr): ConnectInfo, Json(device): Json, ) -> Json { let mut addr = addr; - addr.set_port(state.device.port); - state + addr.set_port(service.device.port); + service .peers .lock() .await diff --git a/src/transfer.rs b/src/transfer.rs index b471dae..9582d05 100644 --- a/src/transfer.rs +++ b/src/transfer.rs @@ -100,10 +100,10 @@ impl JoecalService { Ok(response) } - pub async fn upload( + pub async fn send_bytes( &self, session_id: String, - file_id: String, + content_id: String, token: String, body: Bytes, ) -> Result<()> { @@ -114,13 +114,13 @@ impl JoecalService { return Err(LocalSendError::SessionInactive); } - if session.file_tokens.get(&file_id) != Some(&token) { + if session.file_tokens.get(&content_id) != Some(&token) { return Err(LocalSendError::InvalidToken); } let request = self.client .post(format!( - "{}://{}/api/localsend/v2/upload?sessionId={session_id}&fileId={file_id}&token={token}", + "{}://{}/api/localsend/v2/upload?sessionId={session_id}&fileId={content_id}&token={token}", session.receiver.protocol, session.addr)) .body(body); @@ -157,7 +157,7 @@ impl JoecalService { let bytes = Bytes::from(file_contents); // Upload file - self.upload( + self.send_bytes( prepare_response.session_id, file_metadata.id, token.clone(), @@ -190,7 +190,7 @@ impl JoecalService { } pub async fn register_prepare_upload( - State(state): State, + State(service): State, ConnectInfo(addr): ConnectInfo, Json(req): Json, ) -> impl IntoResponse { @@ -198,14 +198,13 @@ pub async fn register_prepare_upload( let id = Julid::new(); let (tx, mut rx) = unbounded_channel(); - // be sure to clear this request before this function exits! let request = JoecalUploadRequest { alias: req.info.alias.clone(), files: req.files.clone(), tx, }; - match state + match service .transfer_event_tx .send(TransferEvent::UploadRequest { id, request }) { @@ -239,13 +238,13 @@ pub async fn register_prepare_upload( session_id: session_id.clone(), files: req.files.clone(), file_tokens: file_tokens.clone(), - receiver: state.device.clone(), + receiver: service.device.clone(), sender: req.info.clone(), status: SessionStatus::Active, addr, }; - state + service .sessions .lock() .await @@ -263,7 +262,7 @@ pub async fn register_prepare_upload( pub async fn register_upload( Query(params): Query, - State(state): State, + State(service): State, Extension(download_dir): Extension, body: Bytes, ) -> impl IntoResponse { @@ -273,7 +272,7 @@ pub async fn register_upload( let token = ¶ms.token; // Get session and validate - let mut sessions_lock = state.sessions.lock().await; + let mut sessions_lock = service.sessions.lock().await; let session = match sessions_lock.get_mut(session_id) { Some(session) => session, None => return StatusCode::BAD_REQUEST.into_response(), @@ -322,7 +321,7 @@ pub async fn register_upload( } if let Ok(id) = Julid::from_str(session_id) { - state.send_event(TransferEvent::Received(id)); + service.send_event(TransferEvent::Received(id)); }; StatusCode::OK.into_response() @@ -339,9 +338,9 @@ pub struct UploadParams { pub async fn register_cancel( Query(params): Query, - State(state): State, + State(service): State, ) -> impl IntoResponse { - let mut sessions_lock = state.sessions.lock().await; + let mut sessions_lock = service.sessions.lock().await; let session = match sessions_lock.get_mut(¶ms.session_id) { Some(session) => session, None => return StatusCode::BAD_REQUEST.into_response(), @@ -352,7 +351,7 @@ pub async fn register_cancel( session.status = SessionStatus::Cancelled; if let Ok(id) = Julid::from_str(¶ms.session_id) { - state.send_event(TransferEvent::Cancelled(id)); + service.send_event(TransferEvent::Cancelled(id)); }; StatusCode::OK.into_response()