everymap_core/auth/
api_key.rs1use crate::auth::provider::AuthProvider;
2use crate::error::EveryMapResult;
3use async_trait::async_trait;
4use reqwest::RequestBuilder;
5use zeroize::Zeroize;
6
7#[derive(Zeroize)]
11#[zeroize(drop)]
12pub struct ApiKeyProvider {
13 key: String,
14 #[zeroize(skip)]
15 param_name: String,
16}
17
18impl ApiKeyProvider {
19 pub fn new(key: String, param_name: String) -> Self {
20 Self { key, param_name }
21 }
22}
23
24#[async_trait]
25impl AuthProvider for ApiKeyProvider {
26 async fn apply(&self, request: RequestBuilder) -> EveryMapResult<RequestBuilder> {
27 Ok(request.query(&[(&self.param_name, &self.key)]))
28 }
29}