rs_firebase_admin_sdk/client/
error.rs

1use serde::Deserialize;
2use thiserror::Error;
3
4#[derive(Clone, Debug, Deserialize)]
5pub struct FireBaseAPIErrorDetail {
6    pub message: String,
7    pub reason: String,
8    pub domain: String,
9}
10
11#[derive(Clone, Debug, Deserialize)]
12pub struct FireBaseAPIError {
13    pub code: u16,
14    pub message: String,
15    pub errors: Vec<FireBaseAPIErrorDetail>,
16}
17
18/// [Firebase Auth error response body](https://firebase.google.com/docs/reference/rest/auth#section-error-format)
19#[derive(Clone, Debug, Deserialize)]
20pub struct FireBaseAPIErrorResponse {
21    pub error: FireBaseAPIError,
22}
23
24#[derive(Error, Debug, Clone)]
25pub enum ApiClientError {
26    #[error("Failed to send API request")]
27    FailedToSendRequest,
28    #[error("Failed to serialize API request")]
29    FailedToSerializeRequest,
30    #[error("Failed to receive API response")]
31    FailedToReceiveResponse,
32    #[error("Failed to deserialize API response")]
33    FailedToDeserializeResponse,
34    #[error("Server responded with an error {0:?}")]
35    ServerError(FireBaseAPIError),
36}