From 66fff2093aa39e10776f499d254db724b59575d0 Mon Sep 17 00:00:00 2001 From: Malted Date: Thu, 8 Feb 2024 15:44:48 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Update=20GitHub=20profile=20locatio?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 25 +++++++++++++------------ Cargo.toml | 3 ++- src/api/api.rs | 14 ++++++++++++-- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a18a92e..25d7d96 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -827,6 +827,7 @@ dependencies = [ "reqwest", "rocket", "serde", + "serde_json", ] [[package]] @@ -1097,9 +1098,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -1119,9 +1120,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -1458,18 +1459,18 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", @@ -1478,9 +1479,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -1608,9 +1609,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 96fdbbe..95c0909 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ humantime = "2.1.0" openssl = { version = "0.10.61", features = ["vendored"] } parking_lot = "0.12.1" rand = "0.8.5" -reqwest = "0.11.22" +reqwest = { version = "0.11.22", features = ["blocking", "json"] } rocket = { version = "0.5.0", features = ["json"] } serde = { version = "1.0.193", features = ["derive"] } +serde_json = "1.0.113" diff --git a/src/api/api.rs b/src/api/api.rs index ce18833..36224d7 100644 --- a/src/api/api.rs +++ b/src/api/api.rs @@ -1,5 +1,6 @@ use crate::MaltedState; use parking_lot::RwLock; +use reqwest::header::{ACCEPT, AUTHORIZATION}; use rocket::{serde::json::Json, State}; #[derive(serde::Serialize)] @@ -51,8 +52,8 @@ pub fn patch_location( *malted_state.write() = MaltedState { lat, lon, - city, - country, + city: city.clone(), + country: country.clone(), timestamp, battery, }; @@ -60,6 +61,15 @@ pub fn patch_location( return err("Invalid timestamp"); } + let github_pat = std::env::var("github_pat").unwrap(); + let _ = reqwest::blocking::Client::new() + .patch("https://api.github.com/user") + .header(ACCEPT, "application/vnd.github+json") + .header(AUTHORIZATION, format!("Bearer {}", github_pat)) + .header("X-GitHub-Api-Version", "2022-11-28") + .json(&serde_json::json!({ "location": format!("{}, {}", city, country) })) + .send(); + Json(ApiResponse { success: true, message: "Location saved".to_string(),