monitor_client/api/read/
user.rs1use derive_empty_traits::EmptyTraits;
2use resolver_api::derive::Request;
3use serde::{Deserialize, Serialize};
4use typeshare::typeshare;
5
6use crate::entities::{api_key::ApiKey, user::User};
7
8use super::MonitorReadRequest;
9
10#[typeshare]
13#[derive(
14 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
15)]
16#[empty_traits(MonitorReadRequest)]
17#[response(ListApiKeysResponse)]
18pub struct ListApiKeys {}
19
20#[typeshare]
21pub type ListApiKeysResponse = Vec<ApiKey>;
22
23#[typeshare]
30#[derive(
31 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
32)]
33#[empty_traits(MonitorReadRequest)]
34#[response(ListApiKeysForServiceUserResponse)]
35pub struct ListApiKeysForServiceUser {
36 #[serde(alias = "id", alias = "username")]
38 pub user: String,
39}
40
41#[typeshare]
42pub type ListApiKeysForServiceUserResponse = Vec<ApiKey>;
43
44#[typeshare]
50#[derive(
51 Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
52)]
53#[empty_traits(MonitorReadRequest)]
54#[response(FindUserResponse)]
55pub struct FindUser {
56 #[serde(alias = "id", alias = "username")]
58 pub user: String,
59}
60
61#[typeshare]
62pub type FindUserResponse = User;
63
64#[typeshare]
70#[derive(
71 Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
72)]
73#[empty_traits(MonitorReadRequest)]
74#[response(ListUsersResponse)]
75pub struct ListUsers {}
76
77#[typeshare]
78pub type ListUsersResponse = Vec<User>;
79
80#[typeshare]
85#[derive(
86 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
87)]
88#[empty_traits(MonitorReadRequest)]
89#[response(GetUsernameResponse)]
90pub struct GetUsername {
91 pub user_id: String,
93}
94
95#[typeshare]
97#[derive(Serialize, Deserialize, Debug, Clone)]
98pub struct GetUsernameResponse {
99 pub username: String,
101 pub avatar: Option<String>,
103}