aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com>2022-11-14 08:21:05 +0100
committerGitHub <noreply@github.com>2022-11-14 08:21:05 +0100
commit50e5ba8f50090fec223c1e60ae24cf843574e608 (patch)
tree1aa430ab084030c2402c62eeb03b91c023788945
parent5a561f67b349d8216f5c1ea03221b8302b3902ae (diff)
downloadFlightCore-50e5ba8f50090fec223c1e60ae24cf843574e608.tar.gz
FlightCore-50e5ba8f50090fec223c1e60ae24cf843574e608.zip
refactor: Move GitHub API fetch to submodule and re-use existing function (#51)
* refactor: Import all functions from lib So that I don't need to update the header each time I add/remove a function. * refactor: Move function to submodule Move it to module for GitHub API related tasks. * refactor: Re-use existing func for fetching GH API
-rw-r--r--src-tauri/src/github/release_notes.rs29
-rw-r--r--src-tauri/src/lib.rs38
-rw-r--r--src-tauri/src/main.rs9
3 files changed, 31 insertions, 45 deletions
diff --git a/src-tauri/src/github/release_notes.rs b/src-tauri/src/github/release_notes.rs
index 20c535ba..9a87c49b 100644
--- a/src-tauri/src/github/release_notes.rs
+++ b/src-tauri/src/github/release_notes.rs
@@ -27,6 +27,35 @@ async fn fetch_github_releases_api(url: &str) -> Result<String, String> {
Ok(res)
}
+/// Checks if installed FlightCore version is up-to-date
+/// false -> FlightCore install is up-to-date
+/// true -> FlightCore install is outdated
+pub async fn check_is_flightcore_outdated() -> Result<bool, String> {
+ // Get newest version number from GitHub API
+ println!("Checking GitHub API");
+ let url = "https://api.github.com/repos/GeckoEidechse/FlightCore/releases/latest";
+ let res = fetch_github_releases_api(url).await?;
+
+ let json_response: serde_json::Value =
+ serde_json::from_str(&res).expect("JSON was not well-formatted");
+ println!("Done checking GitHub API");
+
+ // Extract version number from JSON
+ let newest_release_version = json_response
+ .get("tag_name")
+ .and_then(|value| value.as_str())
+ .unwrap();
+
+ // Get version of installed FlightCore...
+ let version = env!("CARGO_PKG_VERSION");
+ // ...and format it
+ let version = format!("v{}", version);
+
+ // TODO: This shouldn't be a string compare but promper semver compare
+ Ok(version != newest_release_version)
+}
+
+
#[tauri::command]
pub async fn get_northstar_release_notes() -> Result<Vec<ReleaseInfo>, String> {
let url = "https://api.github.com/repos/R2Northstar/Northstar/releases";
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 4e49c3f9..9a8c46ec 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -355,44 +355,6 @@ pub fn convert_release_candidate_number(version_number: String) -> String {
version_number.replace("-rc", "0").replace("00", "")
}
-/// Checks if installed FlightCore version is up-to-date
-/// false -> FlightCore install is up-to-date
-/// true -> FlightCore install is outdated
-pub async fn check_is_flightcore_outdated() -> Result<bool, String> {
- // Get newest version number from GitHub API
- println!("Checking GitHub API");
- let url = "https://api.github.com/repos/GeckoEidechse/FlightCore/releases/latest";
- let user_agent = "GeckoEidechse/FlightCore";
- let client = reqwest::Client::new();
- let res = client
- .get(url)
- .header(reqwest::header::USER_AGENT, user_agent)
- .send()
- .await
- .unwrap()
- .text()
- .await
- .unwrap();
-
- let json_response: serde_json::Value =
- serde_json::from_str(&res).expect("JSON was not well-formatted");
- println!("Done checking GitHub API");
-
- // Extract version number from JSON
- let newest_release_version = json_response
- .get("tag_name")
- .and_then(|value| value.as_str())
- .unwrap();
-
- // Get version of installed FlightCore...
- let version = env!("CARGO_PKG_VERSION");
- // ...and format it
- let version = format!("v{}", version);
-
- // TODO: This shouldn't be a string compare but promper semver compare
- Ok(version != newest_release_version)
-}
-
pub fn get_log_list(game_install: GameInstall) -> Result<Vec<std::path::PathBuf>, String> {
let ns_log_folder = format!("{}/R2Northstar/logs", game_install.game_path);
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 1ac41684..7db9e089 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -9,15 +9,10 @@ use std::{
time::Duration,
};
-use app::{
- check_is_flightcore_outdated, check_is_valid_game_path, check_northstar_running,
- check_origin_running, convert_release_candidate_number, find_game_install_location,
- get_enabled_mods, get_host_os, get_log_list, get_northstar_version_number,
- install_northstar, launch_northstar, linux_checks_librs, GameInstall, NorthstarMod,
-};
+use app::*;
mod github;
-use github::release_notes::get_northstar_release_notes;
+use github::release_notes::{get_northstar_release_notes, check_is_flightcore_outdated};
mod repair_and_verify;
use repair_and_verify::{verify_game_files, disable_all_but_core};