From 3cae153d11b43696a3e475c7afb6b8ce647203c4 Mon Sep 17 00:00:00 2001 From: Bryan Oltman Date: Fri, 12 Jul 2024 17:16:40 -0400 Subject: [PATCH] refactor: remove duplicated sent_patch_check_request code (#182) * refactor: remove duplicated sent_patch_check_request code * maintain debug log --- library/src/network.rs | 33 +++------------------------------ library/src/updater.rs | 7 ++++--- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/library/src/network.rs b/library/src/network.rs index b30e00c..8ecdeb9 100644 --- a/library/src/network.rs +++ b/library/src/network.rs @@ -8,8 +8,7 @@ use std::io::Write; use std::path::Path; use std::string::ToString; -use crate::cache::UpdaterState; -use crate::config::{current_arch, current_platform, UpdateConfig}; +use crate::config::UpdateConfig; use crate::events::PatchEvent; // https://stackoverflow.com/questions/67087597/is-it-possible-to-use-rusts-log-info-for-tests @@ -64,9 +63,11 @@ pub fn patch_check_request_default( url: &str, request: PatchCheckRequest, ) -> anyhow::Result { + info!("Sending patch check request: {:?}", request); let client = reqwest::blocking::Client::new(); let result = client.post(url).json(&request).send(); let response = handle_network_result(result)?.json()?; + debug!("Patch check response: {:?}", response); Ok(response) } @@ -198,34 +199,6 @@ pub struct PatchCheckResponse { pub patch: Option, } -pub fn send_patch_check_request( - config: &UpdateConfig, - state: &UpdaterState, -) -> anyhow::Result { - let latest_patch_number = state.latest_seen_patch_number(); - - // Send the request to the server. - let request = PatchCheckRequest { - app_id: config.app_id.clone(), - channel: config.channel.clone(), - release_version: config.release_version.clone(), - patch_number: latest_patch_number, - platform: current_platform().to_string(), - arch: current_arch().to_string(), - }; - // Dumping the request should be info! since we direct users to look for it - // in the logs: https://docs.shorebird.dev/troubleshooting#how-to-fix-it-1 - // Another option would be to make verbosity configurable via a key - // in shorebird.yaml. - info!("Sending patch check request: {:?}", request); - let url = &patches_check_url(&config.base_url); - let patch_check_request_fn = config.network_hooks.patch_check_request_fn; - let response = patch_check_request_fn(url, request)?; - - debug!("Patch check response: {:?}", response); - Ok(response) -} - pub fn send_patch_event(event: PatchEvent, config: &UpdateConfig) -> anyhow::Result<()> { let request = CreatePatchEventRequest { event }; diff --git a/library/src/updater.rs b/library/src/updater.rs index 4ff8cf1..7e71c3b 100644 --- a/library/src/updater.rs +++ b/library/src/updater.rs @@ -14,8 +14,7 @@ use crate::config::{current_arch, current_platform, set_config, with_config, Upd use crate::events::{EventType, PatchEvent}; use crate::logging::init_logging; use crate::network::{ - download_to_path, patches_check_url, send_patch_check_request, NetworkHooks, PatchCheckRequest, - PatchCheckResponse, + download_to_path, patches_check_url, NetworkHooks, PatchCheckRequest, PatchCheckResponse, }; use crate::time; use crate::updater_lock::{with_updater_thread_lock, UpdaterLockState}; @@ -295,7 +294,9 @@ fn update_internal(_: &UpdaterLockState) -> anyhow::Result { })?; // Check for update. - let response = send_patch_check_request(&config, &read_only_state)?; + let request = patch_check_request(&config, &read_only_state); + let patch_check_request_fn = &(config.network_hooks.patch_check_request_fn); + let response = patch_check_request_fn(&patches_check_url(&config.base_url), request)?; if !response.patch_available { return Ok(UpdateStatus::NoUpdate); }