diff options
author | GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> | 2022-11-14 08:21:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-14 08:21:05 +0100 |
commit | 50e5ba8f50090fec223c1e60ae24cf843574e608 (patch) | |
tree | 1aa430ab084030c2402c62eeb03b91c023788945 /src-tauri/src/github/release_notes.rs | |
parent | 5a561f67b349d8216f5c1ea03221b8302b3902ae (diff) | |
download | FlightCore-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
Diffstat (limited to 'src-tauri/src/github/release_notes.rs')
-rw-r--r-- | src-tauri/src/github/release_notes.rs | 29 |
1 files changed, 29 insertions, 0 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"; |