azure_sdk_cosmos/responses/
get_database_response.rs1use crate::database::Database;
2use crate::from_headers::*;
3use crate::ResourceQuota;
4use azure_sdk_core::errors::AzureError;
5use azure_sdk_core::{etag_from_headers, session_token_from_headers};
6use chrono::{DateTime, Utc};
7use hyper::header::HeaderMap;
8
9#[derive(Debug, Clone)]
10pub struct GetDatabaseResponse {
11 pub database: Database,
12 pub charge: f64,
13 pub activity_id: uuid::Uuid,
14 pub session_token: String,
15 pub etag: String,
16 pub last_state_change: DateTime<Utc>,
17 pub resource_quota: Vec<ResourceQuota>,
18 pub resource_usage: Vec<ResourceQuota>,
19 pub schema_version: String,
20 pub service_version: String,
21 pub gateway_version: String,
22}
23
24impl std::convert::TryFrom<(&HeaderMap, &[u8])> for GetDatabaseResponse {
25 type Error = AzureError;
26 fn try_from(value: (&HeaderMap, &[u8])) -> Result<Self, Self::Error> {
27 let headers = value.0;
28 let body = value.1;
29
30 debug!("get database response == {}", std::str::from_utf8(body)?);
31
32 Ok(Self {
33 database: serde_json::from_slice(body)?,
34 charge: request_charge_from_headers(headers)?,
35 activity_id: activity_id_from_headers(headers)?,
36 session_token: session_token_from_headers(headers)?,
37 etag: etag_from_headers(headers)?,
38 last_state_change: last_state_change_from_headers(headers)?,
39 resource_quota: resource_quota_from_headers(headers)?,
40 resource_usage: resource_usage_from_headers(headers)?,
41 schema_version: schema_version_from_headers(headers)?.to_owned(),
42 service_version: service_version_from_headers(headers)?.to_owned(),
43 gateway_version: gateway_version_from_headers(headers)?.to_owned(),
44 })
45 }
46}