@@ -39,31 +39,35 @@ impl From<String> for AuthedApiError {
3939 }
4040}
4141
42+ fn apply_env_headers ( req : reqwest:: RequestBuilder ) -> reqwest:: RequestBuilder {
43+ let mut req = req. header ( "X-Cap-Desktop-Version" , env ! ( "CARGO_PKG_VERSION" ) ) ;
44+
45+ if let Ok ( s) = std:: env:: var ( "VITE_VERCEL_AUTOMATION_BYPASS_SECRET" ) {
46+ req = req. header ( "x-vercel-protection-bypass" , s) ;
47+ }
48+
49+ req
50+ }
51+
4252async fn do_authed_request (
4353 auth : & AuthStore ,
4454 build : impl FnOnce ( reqwest:: Client , String ) -> reqwest:: RequestBuilder ,
4555 url : String ,
4656) -> Result < reqwest:: Response , reqwest:: Error > {
4757 let client = reqwest:: Client :: new ( ) ;
4858
49- let mut req = build ( client, url)
50- . header (
51- "Authorization" ,
52- format ! (
53- "Bearer {}" ,
54- match & auth. secret {
55- AuthSecret :: ApiKey { api_key } => api_key,
56- AuthSecret :: Session { token, .. } => token,
57- }
58- ) ,
59- )
60- . header ( "X-Cap-Desktop-Version" , env ! ( "CARGO_PKG_VERSION" ) ) ;
61-
62- if let Ok ( s) = std:: env:: var ( "VITE_VERCEL_AUTOMATION_BYPASS_SECRET" ) {
63- req = req. header ( "x-vercel-protection-bypass" , s) ;
64- }
59+ let req = build ( client, url) . header (
60+ "Authorization" ,
61+ format ! (
62+ "Bearer {}" ,
63+ match & auth. secret {
64+ AuthSecret :: ApiKey { api_key } => api_key,
65+ AuthSecret :: Session { token, .. } => token,
66+ }
67+ ) ,
68+ ) ;
6569
66- req. send ( ) . await
70+ apply_env_headers ( req) . send ( ) . await
6771}
6872
6973pub trait ManagerExt < R : Runtime > : Manager < R > {
@@ -73,6 +77,12 @@ pub trait ManagerExt<R: Runtime>: Manager<R> {
7377 build : impl FnOnce ( reqwest:: Client , String ) -> reqwest:: RequestBuilder ,
7478 ) -> Result < reqwest:: Response , AuthedApiError > ;
7579
80+ async fn api_request (
81+ & self ,
82+ path : impl Into < String > ,
83+ build : impl FnOnce ( reqwest:: Client , String ) -> reqwest:: RequestBuilder ,
84+ ) -> Result < reqwest:: Response , reqwest:: Error > ;
85+
7686 async fn make_app_url ( & self , pathname : impl AsRef < str > ) -> String ;
7787}
7888
@@ -99,6 +109,17 @@ impl<T: Manager<R> + Emitter<R>, R: Runtime> ManagerExt<R> for T {
99109 Ok ( response)
100110 }
101111
112+ async fn api_request (
113+ & self ,
114+ path : impl Into < String > ,
115+ build : impl FnOnce ( reqwest:: Client , String ) -> reqwest:: RequestBuilder ,
116+ ) -> Result < reqwest:: Response , reqwest:: Error > {
117+ let url = self . make_app_url ( path. into ( ) ) . await ;
118+ let client = reqwest:: Client :: new ( ) ;
119+
120+ apply_env_headers ( build ( client, url) ) . send ( ) . await
121+ }
122+
102123 async fn make_app_url ( & self , pathname : impl AsRef < str > ) -> String {
103124 let app_state = self . state :: < ArcLock < crate :: App > > ( ) ;
104125 let server_url = & app_state. read ( ) . await . server_url ;
0 commit comments