rename state to service

This commit is contained in:
Joe Ardent 2025-08-02 22:34:35 -07:00
parent 34e64f5e51
commit 597148f500
3 changed files with 19 additions and 20 deletions

View file

@ -21,7 +21,7 @@ pub struct App {
pub uploads: BTreeMap<Julid, JoecalUploadRequest>,
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<TransferEvent>,
}

View file

@ -96,13 +96,13 @@ impl JoecalService {
/// Axum request handler for receiving other devices' registration requests.
pub async fn register_device(
State(state): State<JoecalService>,
State(service): State<JoecalService>,
ConnectInfo(addr): ConnectInfo<SocketAddr>,
Json(device): Json<Device>,
) -> Json<Device> {
let mut addr = addr;
addr.set_port(state.device.port);
state
addr.set_port(service.device.port);
service
.peers
.lock()
.await

View file

@ -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<JoecalService>,
State(service): State<JoecalService>,
ConnectInfo(addr): ConnectInfo<SocketAddr>,
Json(req): Json<PrepareUploadRequest>,
) -> 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<UploadParams>,
State(state): State<JoecalService>,
State(service): State<JoecalService>,
Extension(download_dir): Extension<String>,
body: Bytes,
) -> impl IntoResponse {
@ -273,7 +272,7 @@ pub async fn register_upload(
let token = &params.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<CancelParams>,
State(state): State<JoecalService>,
State(service): State<JoecalService>,
) -> 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(&params.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(&params.session_id) {
state.send_event(TransferEvent::Cancelled(id));
service.send_event(TransferEvent::Cancelled(id));
};
StatusCode::OK.into_response()