Skip to content
Clone
1588610
132 lines 6.9 KB Rust
use utoipa::OpenApi;
use crate::features::avatar::types::{AvatarFormat, AvatarView, UploadAvatarCmd};
use crate::features::profile::types::{
MemeView, ProfileView, UpdateProfileCmd, UpdateProfileFields, UpsertMemeCmd, UserMe, UserPublic,
};
use crate::features::social::types::{
BlockedSummary, FollowerSummary, ListBlocksQuery, ListFollowersQuery, ListFollowingQuery,
};
use config::user::ProfileVisibility;
use export::user::deletion::{DeletionRequestView, DeletionStatus, RequestDeletionCmd};
use export::user::devices::{DeviceView, UpdateDeviceCmd};
use export::user::emails::{
AddEmailCmd, AddEmailResp, ConfirmEmailChangeCmd, EmailChangeTicketStatus,
EmailChangeTicketView, EmailView, SetPrimaryEmailResp,
};
use export::user::notifications::{
ListNotificationsQuery, MarkReadCmd, NotificationType, NotificationView, RecentMentionView,
ReportStatus, ReportView, SaveMessageCmd, SavedMessageView, ScheduledMessageStatus,
ScheduledMessageView, SubmitReportCmd, UnreadCountResp, UpdateReportCmd,
};
use export::user::preferences::{Audience, UpdatePreferencesCmd, UserPreferences};
use export::user::security::{
AccessKeyScope, AccessKeyView, AddSshKeyCmd, CreateAccessKeyCmd, CreateAccessKeyResp,
PushPlatform, PushSubscriptionView, RecoveryCodeView, RegenerateRecoveryResp, SshKeyType,
SshKeyView, UpsertPushCmd,
};
use export::user::sessions::{ListSessionsQuery, SessionKind, SessionView};
use export::user::suspensions::{RevokeSuspensionCmd, SuspendCmd, SuspensionType, SuspensionView};
#[derive(OpenApi)]
#[openapi(
info(
title = "User API",
version = "1.0.0",
description = "Account, profile, preferences, social graph, sessions, devices, suspensions, deletion, security credentials, notifications endpoints."
),
tags(
(name = "user", description = "User profile, account, sessions and notifications endpoints.")
),
paths(
crate::handler::avatar::current::handler,
crate::handler::avatar::upload::handler,
crate::handler::avatar::delete::handler,
crate::handler::profile::me::handler,
crate::handler::profile::public_view::handler,
crate::handler::profile::update_profile::handler,
crate::handler::profile::update_admin::handler,
crate::handler::profile::profile_view::handler,
crate::handler::profile::memes::list_handler,
crate::handler::profile::memes::create_handler,
crate::handler::profile::memes::delete_handler,
crate::handler::preferences::get::handler,
crate::handler::preferences::update::handler,
crate::handler::social::follow::handler,
crate::handler::social::unfollow::handler,
crate::handler::social::list_followers::handler,
crate::handler::social::list_following::handler,
crate::handler::social::block::handler,
crate::handler::social::unblock::handler,
crate::handler::social::list_blocks::handler,
crate::handler::devices::list_devices::handler,
crate::handler::devices::update_device::handler,
crate::handler::devices::delete_device::handler,
crate::handler::sessions::list_sessions::handler,
crate::handler::sessions::revoke_session::handler,
crate::handler::sessions::revoke_sessions::handler,
crate::handler::emails::list_emails::handler,
crate::handler::emails::add_email::handler,
crate::handler::emails::set_primary::handler,
crate::handler::emails::delete_email::handler,
crate::handler::emails::request_change::handler,
crate::handler::emails::confirm_change::handler,
crate::handler::emails::cancel_change::handler,
crate::handler::deletion::request::handler,
crate::handler::deletion::cancel::handler,
crate::handler::deletion::confirm::handler,
crate::handler::deletion::list_pending::handler,
crate::handler::deletion::complete::handler,
crate::handler::suspensions::create::handler,
crate::handler::suspensions::revoke::handler,
crate::handler::suspensions::list_user::handler,
crate::handler::suspensions::list_all::handler,
crate::handler::suspensions::list_self::handler,
crate::handler::security::recovery_codes::list::handler,
crate::handler::security::recovery_codes::regenerate::handler,
crate::handler::security::access_keys::list_keys::handler,
crate::handler::security::access_keys::create_key::handler,
crate::handler::security::access_keys::delete_key::handler,
crate::handler::security::ssh_keys::list_keys::handler,
crate::handler::security::ssh_keys::add_key::handler,
crate::handler::security::ssh_keys::delete_key::handler,
crate::handler::security::push_subscriptions::list::handler,
crate::handler::security::push_subscriptions::upsert::handler,
crate::handler::security::push_subscriptions::delete::handler,
crate::handler::notifications::list_notifications::handler,
crate::handler::notifications::mark_read::handler,
crate::handler::notifications::mark_all_read::handler,
crate::handler::notifications::unread_count::handler,
crate::handler::notifications::recent_mentions::handler,
crate::handler::notifications::reports::submit::handler,
crate::handler::notifications::reports::list_my::handler,
crate::handler::notifications::saved_messages::list::handler,
crate::handler::notifications::saved_messages::save::handler,
crate::handler::notifications::saved_messages::unsave::handler,
crate::handler::notifications::scheduled_messages::list::handler,
crate::handler::notifications::scheduled_messages::cancel::handler,
),
components(schemas(
UserPublic, UserMe, ProfileView, ProfileVisibility, UpdateProfileCmd, UpdateProfileFields,
MemeView, UpsertMemeCmd,
AvatarView, AvatarFormat, UploadAvatarCmd,
UserPreferences, UpdatePreferencesCmd, Audience,
FollowerSummary, BlockedSummary, ListFollowersQuery, ListFollowingQuery, ListBlocksQuery,
DeviceView, UpdateDeviceCmd,
SessionView, SessionKind, ListSessionsQuery,
EmailView, AddEmailCmd, AddEmailResp, SetPrimaryEmailResp,
EmailChangeTicketView, EmailChangeTicketStatus, ConfirmEmailChangeCmd,
DeletionRequestView, DeletionStatus, RequestDeletionCmd,
SuspensionView, SuspensionType, SuspendCmd, RevokeSuspensionCmd,
RecoveryCodeView, RegenerateRecoveryResp,
AccessKeyView, AccessKeyScope, CreateAccessKeyCmd, CreateAccessKeyResp,
SshKeyView, SshKeyType, AddSshKeyCmd,
PushSubscriptionView, PushPlatform, UpsertPushCmd,
NotificationView, NotificationType, ListNotificationsQuery, MarkReadCmd, UnreadCountResp,
RecentMentionView,
ReportView, ReportStatus, SubmitReportCmd, UpdateReportCmd,
SavedMessageView, SaveMessageCmd,
ScheduledMessageView, ScheduledMessageStatus,
))
)]
pub struct UserApiDoc;