@@ -164,164 +164,6 @@ impl<'a, T: TokenCredential> KeyClient<'a, T> {
164
164
}
165
165
}
166
166
167
- /// Client for Key Vault operations - getting a certificate, listing certificates, etc.
168
- ///
169
- /// # Example
170
- ///
171
- /// ```no_run
172
- /// use azure_key_vault::CertificateClient;
173
- /// use azure_identity::token_credentials::DefaultCredential;
174
- /// let creds = DefaultCredential::default();
175
- /// let client = CertificateClient::new(&"https://test-key-vault.vault.azure.net", &creds).unwrap();
176
- /// ```
177
- #[ derive( Debug ) ]
178
- pub struct CertificateClient < ' a , T > {
179
- pub ( crate ) vault_url : Url ,
180
- pub ( crate ) endpoint : String ,
181
- pub ( crate ) token_credential : & ' a T ,
182
- pub ( crate ) token : Option < TokenResponse > ,
183
- }
184
-
185
- impl < ' a , T : TokenCredential > CertificateClient < ' a , T > {
186
- /// Creates a new `CertificateClient`.
187
- ///
188
- /// # Example
189
- ///
190
- /// ```no_run
191
- /// use azure_key_vault::CertificateClient;
192
- /// use azure_identity::token_credentials::DefaultCredential;
193
- /// let creds = DefaultCredential::default();
194
- /// let client = CertificateClient::new("test-key-vault.vault.azure.net", &creds).unwrap();
195
- /// ```
196
- pub fn new ( vault_url : & str , token_credential : & ' a T ) -> Result < Self , Error > {
197
- let vault_url = Url :: parse ( vault_url) ?;
198
- let endpoint = extract_endpoint ( & vault_url) ?;
199
- let client = CertificateClient {
200
- vault_url,
201
- endpoint,
202
- token_credential,
203
- token : None ,
204
- } ;
205
- Ok ( client)
206
- }
207
-
208
- pub ( crate ) async fn refresh_token ( & mut self ) -> Result < ( ) , Error > {
209
- if matches ! ( & self . token, Some ( token) if token. expires_on > chrono:: Utc :: now( ) ) {
210
- // Token is valid, return it.
211
- return Ok ( ( ) ) ;
212
- }
213
-
214
- let token = self
215
- . token_credential
216
- . get_token ( & self . endpoint )
217
- . await
218
- . map_err ( |_| Error :: Authorization ) ?;
219
- self . token = Some ( token) ;
220
- Ok ( ( ) )
221
- }
222
-
223
- pub ( crate ) async fn get_authed ( & mut self , uri : String ) -> Result < String , Error > {
224
- self . refresh_token ( ) . await ?;
225
-
226
- let resp = reqwest:: Client :: new ( )
227
- . get ( & uri)
228
- . bearer_auth ( self . token . as_ref ( ) . unwrap ( ) . token . secret ( ) )
229
- . send ( )
230
- . await
231
- . unwrap ( ) ;
232
- let body = resp. text ( ) . await . unwrap ( ) ;
233
- Ok ( body)
234
- }
235
-
236
- pub ( crate ) async fn _put_authed ( & mut self , uri : String , body : String ) -> Result < String , Error > {
237
- self . refresh_token ( ) . await ?;
238
-
239
- let resp = reqwest:: Client :: new ( )
240
- . put ( & uri)
241
- . bearer_auth ( self . token . as_ref ( ) . unwrap ( ) . token . secret ( ) )
242
- . header ( "Content-Type" , "application/json" )
243
- . body ( body)
244
- . send ( )
245
- . await
246
- . unwrap ( ) ;
247
- let body = resp. text ( ) . await ?;
248
- Ok ( body)
249
- }
250
-
251
- pub ( crate ) async fn post_authed (
252
- & mut self ,
253
- uri : String ,
254
- json_body : Option < String > ,
255
- ) -> Result < String , Error > {
256
- self . refresh_token ( ) . await ?;
257
-
258
- let mut req = reqwest:: Client :: new ( )
259
- . post ( & uri)
260
- . bearer_auth ( self . token . as_ref ( ) . unwrap ( ) . token . secret ( ) ) ;
261
-
262
- if let Some ( body) = json_body {
263
- req = req. header ( "Content-Type" , "application/json" ) . body ( body) ;
264
- } else {
265
- req = req. header ( "Content-Length" , 0 ) ;
266
- }
267
-
268
- let resp = req. send ( ) . await ?;
269
-
270
- let body = resp. text ( ) . await ?;
271
-
272
- let body_serialized = serde_json:: from_str :: < serde_json:: Value > ( & body) . unwrap ( ) ;
273
-
274
- if let Some ( err) = body_serialized. get ( "error" ) {
275
- let msg = err. get ( "message" ) . ok_or ( Error :: UnparsableError ) ?;
276
- Err ( Error :: General ( msg. to_string ( ) ) )
277
- } else {
278
- Ok ( body)
279
- }
280
- }
281
-
282
- pub ( crate ) async fn patch_authed (
283
- & mut self ,
284
- uri : String ,
285
- body : String ,
286
- ) -> Result < String , Error > {
287
- self . refresh_token ( ) . await ?;
288
-
289
- let resp = reqwest:: Client :: new ( )
290
- . patch ( & uri)
291
- . bearer_auth ( self . token . as_ref ( ) . unwrap ( ) . token . secret ( ) )
292
- . header ( "Content-Type" , "application/json" )
293
- . body ( body)
294
- . send ( )
295
- . await
296
- . unwrap ( ) ;
297
-
298
- let body = resp. text ( ) . await . unwrap ( ) ;
299
-
300
- let body_serialized = serde_json:: from_str :: < serde_json:: Value > ( & body) . unwrap ( ) ;
301
-
302
- if let Some ( err) = body_serialized. get ( "error" ) {
303
- let msg = err. get ( "message" ) . ok_or ( Error :: UnparsableError ) ?;
304
- Err ( Error :: General ( msg. to_string ( ) ) )
305
- } else {
306
- Ok ( body)
307
- }
308
- }
309
-
310
- pub ( crate ) async fn _delete_authed ( & mut self , uri : String ) -> Result < String , Error > {
311
- self . refresh_token ( ) . await ?;
312
-
313
- let resp = reqwest:: Client :: new ( )
314
- . delete ( & uri)
315
- . bearer_auth ( self . token . as_ref ( ) . unwrap ( ) . token . secret ( ) )
316
- . header ( "Content-Type" , "application/json" )
317
- . send ( )
318
- . await
319
- . unwrap ( ) ;
320
- let body = resp. text ( ) . await . unwrap ( ) ;
321
- Ok ( body)
322
- }
323
- }
324
-
325
167
/// Helper to get vault endpoint with a scheme and a trailing slash
326
168
/// ex. `https://vault.azure.net/` where the full client url is `https://myvault.vault.azure.net`
327
169
fn extract_endpoint ( url : & Url ) -> Result < String , Error > {
0 commit comments