mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-08-31 00:10:30 +00:00
* feat: implement discover endpoints Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com> Release-As: 0.15.2
43 lines
2.2 KiB
Rust
43 lines
2.2 KiB
Rust
use std::{collections::HashMap, sync::Arc};
|
|
|
|
use futures::lock::Mutex;
|
|
|
|
use crate::{
|
|
Account, AccountInvite, AuditLogEntry, Bot, Channel, ChannelCompositeKey, ChannelUnread,
|
|
DiscoverBan, DiscoverRequest, DiscoverRequestType, Emoji, File, FileHash, Invite, MFATicket,
|
|
Member, MemberCompositeKey, Message, PolicyChange, RatelimitEvent, Report, Server, ServerBan,
|
|
Session, Snapshot, User, UserSettings, Webhook,
|
|
};
|
|
|
|
database_derived!(
|
|
/// Reference implementation
|
|
#[derive(Default, Debug)]
|
|
pub struct ReferenceDb {
|
|
pub audit_logs: Arc<Mutex<HashMap<String, AuditLogEntry>>>,
|
|
pub bots: Arc<Mutex<HashMap<String, Bot>>>,
|
|
pub channels: Arc<Mutex<HashMap<String, Channel>>>,
|
|
pub channel_invites: Arc<Mutex<HashMap<String, Invite>>>,
|
|
pub channel_unreads: Arc<Mutex<HashMap<ChannelCompositeKey, ChannelUnread>>>,
|
|
pub channel_webhooks: Arc<Mutex<HashMap<String, Webhook>>>,
|
|
pub emojis: Arc<Mutex<HashMap<String, Emoji>>>,
|
|
pub discover_requests: Arc<Mutex<HashMap<(DiscoverRequestType, String), DiscoverRequest>>>,
|
|
pub discover_bans: Arc<Mutex<HashMap<String, DiscoverBan>>>,
|
|
pub file_hashes: Arc<Mutex<HashMap<String, FileHash>>>,
|
|
pub files: Arc<Mutex<HashMap<String, File>>>,
|
|
pub messages: Arc<Mutex<HashMap<String, Message>>>,
|
|
pub policy_changes: Arc<Mutex<HashMap<String, PolicyChange>>>,
|
|
pub ratelimit_events: Arc<Mutex<HashMap<String, RatelimitEvent>>>,
|
|
pub user_settings: Arc<Mutex<HashMap<String, UserSettings>>>,
|
|
pub users: Arc<Mutex<HashMap<String, User>>>,
|
|
pub server_bans: Arc<Mutex<HashMap<MemberCompositeKey, ServerBan>>>,
|
|
pub server_members: Arc<Mutex<HashMap<MemberCompositeKey, Member>>>,
|
|
pub servers: Arc<Mutex<HashMap<String, Server>>>,
|
|
pub safety_reports: Arc<Mutex<HashMap<String, Report>>>,
|
|
pub safety_snapshots: Arc<Mutex<HashMap<String, Snapshot>>>,
|
|
pub accounts: Arc<Mutex<HashMap<String, Account>>>,
|
|
pub account_invites: Arc<Mutex<HashMap<String, AccountInvite>>>,
|
|
pub sessions: Arc<Mutex<HashMap<String, Session>>>,
|
|
pub tickets: Arc<Mutex<HashMap<String, MFATicket>>>,
|
|
}
|
|
);
|