alibi_sqlx/store/entities/
oauth_client_resource.rs1use crate::{JsonMetadata, SqlxModel};
2use chrono::{DateTime, Utc};
3#[derive(
4 Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize, sqlx::FromRow, SqlxModel,
5)]
6#[auth(table = "oauthClientResource")]
7pub struct Model {
8 pub id: String,
9 #[sqlx(rename = "clientId")]
10 #[serde(rename = "clientId")]
11 pub client_id: String,
12 #[sqlx(rename = "resourceId")]
13 #[serde(rename = "resourceId")]
14 pub resource_id: String,
15 #[serde(rename = "metadata")]
16 pub metadata: Option<JsonMetadata>,
17 #[sqlx(rename = "createdAt")]
18 #[serde(rename = "createdAt")]
19 pub created_at: Option<DateTime<Utc>>,
20}
21
22impl TryFrom<Model> for alibi_core::store::OAuthClientResource {
23 type Error = alibi_core::AuthError;
24 fn try_from(model: Model) -> Result<Self, Self::Error> {
25 Ok(Self {
26 id: model.id,
27 client_id: model.client_id,
28 resource_id: model.resource_id,
29 metadata: model
30 .metadata
31 .map_or(serde_json::Value::Null, |value| (*value).clone()),
32 created_at: model.created_at,
33 })
34 }
35}