shift_proxy/routes/
google.rs1use crate::forward::forward_request;
8use crate::ProxyState;
9use axum::extract::State;
10use axum::http::{HeaderMap, Uri};
11use axum::response::Response;
12
13pub async fn google_handler(
15 State(state): State<ProxyState>,
16 uri: Uri,
17 headers: HeaderMap,
18 body: String,
19) -> Response {
20 let base_url = &state.config.providers.google;
21 let query = uri.query().map(|q| format!("?{}", q)).unwrap_or_default();
22 let target_url = format!("{}{}{}", base_url, uri.path(), query);
23
24 if state.config.verbose {
25 tracing::info!("Google: passthrough → {}{}", base_url, uri.path());
27 }
28
29 forward_request(
30 &state.http_client,
31 "POST",
32 &target_url,
33 &headers,
34 Some(body),
35 )
36 .await
37}