diff --git a/src/domain/notifications/push.rs b/src/domain/notifications/push.rs index 5aaa54a..70ebb83 100644 --- a/src/domain/notifications/push.rs +++ b/src/domain/notifications/push.rs @@ -91,10 +91,15 @@ impl PushSender { let client = IsahcWebPushClient::new() .map_err(|e| crate::error::AppError::Internal(e.to_string()))?; - client - .send(message) - .await - .map_err(|e| crate::error::AppError::Internal(e.to_string()))?; + client.send(message).await.map_err(|e| { + tracing::error!("Failed to send push notification: {}", e); + crate::error::AppError::Internal(e.to_string()) + })?; + + tracing::info!( + "Push notification sent successfully to {}", + subscription.endpoint + ); Ok(()) } diff --git a/src/domain/tasks.rs b/src/domain/tasks.rs index 65d3090..1993535 100644 --- a/src/domain/tasks.rs +++ b/src/domain/tasks.rs @@ -140,13 +140,25 @@ pub async fn execute_agent_run( .await .map_err(crate::error::AppError::Database)?; + tracing::info!( + "Found {} task subscriptions for task {}", + subscriptions.len(), + task_id + ); + for sub in subscriptions { let push_subs = push_subscription::Entity::find() - .filter(push_subscription::Column::UserSub.eq(sub.user_sub)) + .filter(push_subscription::Column::UserSub.eq(sub.user_sub.clone())) .all(db) .await .map_err(crate::error::AppError::Database)?; + tracing::info!( + "Found {} push subscriptions for user {}", + push_subs.len(), + sub.user_sub + ); + for push_sub in push_subs { let sender = _scheduler.push_sender.clone(); let goal = task_response.goal.clone(); diff --git a/src/server/notifications/push_handlers.rs b/src/server/notifications/push_handlers.rs index 00860c4..cc38e19 100644 --- a/src/server/notifications/push_handlers.rs +++ b/src/server/notifications/push_handlers.rs @@ -26,6 +26,11 @@ pub async fn register_push( Json(payload): Json, ) -> AppResult> { let user_sub = user.0.sub; + tracing::info!( + "Registering push subscription for user: {} with endpoint: {}", + user_sub, + payload.endpoint + ); // Check if subscription exists let existing = push_subscription::Entity::find()