Merge pull request #2435 from zed-industries/use-json-post-request-for-update-requests

Joseph T. Lyons created

Use json_post() request for update requests

Change summary

crates/auto_update/src/auto_update.rs | 2 +-
crates/client/src/telemetry.rs        | 6 +++---
crates/util/src/http.rs               | 6 ++++++
3 files changed, 10 insertions(+), 4 deletions(-)

Detailed changes

crates/auto_update/src/auto_update.rs 🔗

@@ -273,7 +273,7 @@ impl AutoUpdater {
             telemetry,
         })?);
 
-        let mut response = client.get(&release.url, request_body, true).await?;
+        let mut response = client.post_json(&release.url, request_body, true).await?;
         smol::io::copy(response.body_mut(), &mut dmg_file).await?;
         log::info!("downloaded update. path:{:?}", dmg_path);
 

crates/client/src/telemetry.rs 🔗

@@ -270,7 +270,7 @@ impl Telemetry {
                         }])?;
 
                         this.http_client
-                            .post_json(MIXPANEL_ENGAGE_URL, json_bytes.into())
+                            .post_json(MIXPANEL_ENGAGE_URL, json_bytes.into(), false)
                             .await?;
                         anyhow::Ok(())
                     }
@@ -404,7 +404,7 @@ impl Telemetry {
                         json_bytes.clear();
                         serde_json::to_writer(&mut json_bytes, &events)?;
                         this.http_client
-                            .post_json(MIXPANEL_EVENTS_URL, json_bytes.into())
+                            .post_json(MIXPANEL_EVENTS_URL, json_bytes.into(), false)
                             .await?;
                         anyhow::Ok(())
                     }
@@ -454,7 +454,7 @@ impl Telemetry {
                     }
 
                     this.http_client
-                        .post_json(CLICKHOUSE_EVENTS_URL.as_str(), json_bytes.into())
+                        .post_json(CLICKHOUSE_EVENTS_URL.as_str(), json_bytes.into(), false)
                         .await?;
                     anyhow::Ok(())
                 }

crates/util/src/http.rs 🔗

@@ -40,8 +40,14 @@ pub trait HttpClient: Send + Sync {
         &'a self,
         uri: &str,
         body: AsyncBody,
+        follow_redirects: bool,
     ) -> BoxFuture<'a, Result<Response<AsyncBody>, Error>> {
         let request = isahc::Request::builder()
+            .redirect_policy(if follow_redirects {
+                RedirectPolicy::Follow
+            } else {
+                RedirectPolicy::None
+            })
             .method(Method::POST)
             .uri(uri)
             .header("Content-Type", "application/json")