sos_core/events/
account.rs1use super::{EventKind, LogEvent};
3use crate::VaultId;
4use serde::{Deserialize, Serialize};
5
6#[derive(Default, Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub enum AccountEvent {
10 #[default]
11 #[doc(hidden)]
12 Noop,
13
14 RenameAccount(String),
16
17 UpdateIdentity(#[serde(skip)] Vec<u8>),
28
29 CreateFolder(VaultId, #[serde(skip)] Vec<u8>),
33
34 RenameFolder(VaultId, String),
36
37 UpdateFolder(VaultId, #[serde(skip)] Vec<u8>),
47
48 CompactFolder(VaultId, #[serde(skip)] Vec<u8>),
55
56 ChangeFolderPassword(VaultId, #[serde(skip)] Vec<u8>),
63
64 DeleteFolder(VaultId),
66}
67
68impl AccountEvent {
69 pub fn folder_id(&self) -> Option<VaultId> {
71 match self {
72 AccountEvent::RenameAccount(_) => None,
73 AccountEvent::UpdateIdentity(_) => None,
74 AccountEvent::CreateFolder(vault_id, _)
75 | AccountEvent::UpdateFolder(vault_id, _)
76 | AccountEvent::CompactFolder(vault_id, _)
77 | AccountEvent::ChangeFolderPassword(vault_id, _) => {
78 Some(*vault_id)
79 }
80 AccountEvent::RenameFolder(vault_id, _) => Some(*vault_id),
81 AccountEvent::DeleteFolder(vault_id) => Some(*vault_id),
82 AccountEvent::Noop => None,
83 }
84 }
85}
86
87impl LogEvent for AccountEvent {
88 fn event_kind(&self) -> EventKind {
89 match self {
90 Self::Noop => EventKind::Noop,
91 Self::RenameAccount(_) => EventKind::RenameAccount,
92 Self::UpdateIdentity(_) => EventKind::UpdateIdentity,
93 Self::CreateFolder(_, _) => EventKind::CreateVault,
94 Self::RenameFolder(_, _) => EventKind::SetVaultName,
95 Self::CompactFolder(_, _) => EventKind::CompactVault,
96 Self::UpdateFolder(_, _) => EventKind::UpdateVault,
97 Self::ChangeFolderPassword(_, _) => EventKind::ChangePassword,
98 Self::DeleteFolder(_) => EventKind::DeleteVault,
99 }
100 }
101}