From 662ba970de74e3ed4606648bab1295ff5a5d30c9 Mon Sep 17 00:00:00 2001 From: userAdityaa Date: Wed, 15 Apr 2026 15:18:27 +0545 Subject: [PATCH] fix: respect activity_type in set_relay_status and include activate_relay --- backend/spec/infra.md | 2 +- backend/src/billing.rs | 15 +++++---------- backend/src/command.rs | 3 +-- backend/src/infra.rs | 12 ++++++++---- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/backend/spec/infra.md b/backend/spec/infra.md index 94d7204..b4beff8 100644 --- a/backend/spec/infra.md +++ b/backend/spec/infra.md @@ -19,7 +19,7 @@ Members: ## `async fn handle_activity(&self, activity: &Activity)` -- For `create_relay`, `update_relay`, or `deactivate_relay` activity, calls `sync_and_report`. +- For `create_relay`, `update_relay`, `activate_relay`, or `deactivate_relay` activity, calls `sync_and_report`. - All other activity types are ignored (e.g. `fail_relay_sync`, `complete_relay_sync`). ## `async fn sync_and_report(&self, relay: &Relay, is_new: bool)` diff --git a/backend/src/billing.rs b/backend/src/billing.rs index a5f60fa..9af000d 100644 --- a/backend/src/billing.rs +++ b/backend/src/billing.rs @@ -837,10 +837,14 @@ pub fn fiat_minor_to_msats_from_quote( #[cfg(test)] mod tests { - use super::{Billing, fiat_minor_to_msats_from_quote}; + use super::*; use crate::models::{ RELAY_STATUS_ACTIVE, RELAY_STATUS_DELINQUENT, RELAY_STATUS_INACTIVE, Relay, }; + use sqlx::SqlitePool; + use sqlx::sqlite::{SqliteConnectOptions, SqlitePoolOptions}; + use std::str::FromStr; + use std::sync::{Mutex, OnceLock}; fn relay_fixture(status: &str, plan: &str) -> Relay { Relay { @@ -901,15 +905,6 @@ mod tests { &unknown_status_paid )); } -} - -#[cfg(test)] -mod tests { - use super::*; - use sqlx::SqlitePool; - use sqlx::sqlite::{SqliteConnectOptions, SqlitePoolOptions}; - use std::str::FromStr; - use std::sync::{Mutex, OnceLock}; fn env_lock() -> &'static Mutex<()> { static LOCK: OnceLock> = OnceLock::new(); diff --git a/backend/src/command.rs b/backend/src/command.rs index 031977e..e75100a 100644 --- a/backend/src/command.rs +++ b/backend/src/command.rs @@ -209,8 +209,7 @@ impl Command { .execute(&mut *tx) .await?; - let activity = - Self::insert_activity(&mut tx, "deactivate_relay", "relay", &relay_id).await?; + let activity = Self::insert_activity(&mut tx, activity_type, "relay", relay_id).await?; tx.commit().await?; self.emit(activity); diff --git a/backend/src/infra.rs b/backend/src/infra.rs index 7cc5b04..a68d2af 100644 --- a/backend/src/infra.rs +++ b/backend/src/infra.rs @@ -56,10 +56,7 @@ impl Infra { } async fn handle_activity(&self, activity: &Activity) -> Result<()> { - let needs_sync = matches!( - activity.activity_type.as_str(), - "create_relay" | "update_relay" | "deactivate_relay" - ); + let needs_sync = should_sync_relay_activity(activity.activity_type.as_str()); if needs_sync { let Some(relay) = self.query.get_relay(&activity.resource_id).await? else { @@ -165,3 +162,10 @@ impl Infra { Ok(()) } } + +fn should_sync_relay_activity(activity_type: &str) -> bool { + matches!( + activity_type, + "create_relay" | "update_relay" | "activate_relay" | "deactivate_relay" + ) +}