Skip to main content

e_imzo/
prelude.rs

1use chrono::NaiveDateTime;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
6pub struct Certificate {
7    pub disk: String,
8    pub path: String,
9    pub name: String,
10    pub alias: String,
11    pub valid_from: Option<NaiveDateTime>,
12    pub valid_to: Option<NaiveDateTime>,
13    pub is_expired: Option<bool>,
14}
15
16impl Certificate {
17    pub fn get_alias(&self) -> HashMap<String, String> {
18        self.alias
19            .split(",")
20            .filter_map(|kv| {
21                let mut kv = kv.split("=");
22                match (kv.next(), kv.next()) {
23                    (Some(k), Some(v)) => Some((k.to_string(), v.to_string())),
24                    _ => None,
25                }
26            })
27            .collect()
28    }
29}
30
31#[derive(Serialize, Deserialize, Default, Debug)]
32pub struct ListAllCertificatesResponse {
33    pub certificates: Vec<Certificate>,
34}
35
36#[derive(Serialize, Deserialize, Default, Debug)]
37pub struct GenericTextMessage {
38    pub message: String,
39}