Skip to main content

better_auth_core/wire/
verification.rs

1use super::*;
2/// Public verification response shape.
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
4pub struct VerificationView {
5    pub id: String,
6    pub identifier: String,
7    pub value: String,
8    #[serde(rename = "expiresAt")]
9    #[serde(serialize_with = "crate::utils::datetime::serialize")]
10    pub expires_at: DateTime<Utc>,
11    #[serde(rename = "createdAt")]
12    #[serde(serialize_with = "crate::utils::datetime::serialize")]
13    pub created_at: DateTime<Utc>,
14    #[serde(rename = "updatedAt")]
15    #[serde(serialize_with = "crate::utils::datetime::serialize")]
16    pub updated_at: DateTime<Utc>,
17}
18
19impl<T: AuthVerification> From<&T> for VerificationView {
20    fn from(verification: &T) -> Self {
21        Self {
22            id: verification.id().into_owned(),
23            identifier: verification.identifier().to_owned(),
24            value: verification.value().to_owned(),
25            expires_at: verification.expires_at(),
26            created_at: verification.created_at(),
27            updated_at: verification.updated_at(),
28        }
29    }
30}
31
32impl AuthVerification for VerificationView {
33    fn id(&self) -> Cow<'_, str> {
34        Cow::Borrowed(&self.id)
35    }
36    fn identifier(&self) -> &str {
37        &self.identifier
38    }
39    fn value(&self) -> &str {
40        &self.value
41    }
42    fn expires_at(&self) -> DateTime<Utc> {
43        self.expires_at
44    }
45    fn created_at(&self) -> DateTime<Utc> {
46        self.created_at
47    }
48    fn updated_at(&self) -> DateTime<Utc> {
49        self.updated_at
50    }
51}