wekan_cli/command_result/users/
tokens.rs1use secrecy::{ExposeSecret, SecretString};
2use serde::{Serialize, Serializer};
3
4#[derive(Debug, Serialize)]
5pub struct UserTokenCreateSuccess {
6 pub user_id: String,
7 #[serde(serialize_with = "serialize_issued_token")]
8 auth_token: SecretString,
9}
10
11impl UserTokenCreateSuccess {
12 pub fn new(user_id: String, auth_token: SecretString) -> Self {
13 Self {
14 user_id,
15 auth_token,
16 }
17 }
18
19 pub fn auth_token(&self) -> &SecretString {
20 &self.auth_token
21 }
22}
23
24impl PartialEq for UserTokenCreateSuccess {
25 fn eq(&self, other: &Self) -> bool {
26 self.user_id == other.user_id
27 && self.auth_token.expose_secret() == other.auth_token.expose_secret()
28 }
29}
30impl Eq for UserTokenCreateSuccess {}
31
32fn serialize_issued_token<S: Serializer>(token: &SecretString, s: S) -> Result<S::Ok, S::Error> {
33 s.serialize_str(token.expose_secret())
34}
35
36#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
37#[serde(rename_all = "snake_case")]
38pub enum UserTokenDeleteScope {
39 Single,
40 All,
41}
42
43#[derive(Debug, Eq, PartialEq, Serialize)]
44pub struct UserTokenDeleteSuccess {
45 pub user_id: String,
46 pub scope: UserTokenDeleteScope,
47 pub message: String,
48}