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}