From d5d922d8307cec167d6580aaf12339cbd127b994 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Sun, 23 Apr 2023 18:07:23 +0100 Subject: [PATCH] feat(core/models): rest of the conversions to User model --- crates/core/models/src/users.rs | 59 +++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 13 deletions(-) diff --git a/crates/core/models/src/users.rs b/crates/core/models/src/users.rs index 09d3b0b4..bf52cafc 100644 --- a/crates/core/models/src/users.rs +++ b/crates/core/models/src/users.rs @@ -199,10 +199,16 @@ impl User { } #[cfg(feature = "from_database")] -impl From for BotInformation { - fn from(value: revolt_database::BotInformation) -> Self { - BotInformation { - owner_id: value.owner, +impl From for RelationshipStatus { + fn from(value: revolt_database::RelationshipStatus) -> Self { + match value { + revolt_database::RelationshipStatus::None => RelationshipStatus::None, + revolt_database::RelationshipStatus::User => RelationshipStatus::User, + revolt_database::RelationshipStatus::Friend => RelationshipStatus::Friend, + revolt_database::RelationshipStatus::Outgoing => RelationshipStatus::Outgoing, + revolt_database::RelationshipStatus::Incoming => RelationshipStatus::Incoming, + revolt_database::RelationshipStatus::Blocked => RelationshipStatus::Blocked, + revolt_database::RelationshipStatus::BlockedOther => RelationshipStatus::BlockedOther, } } } @@ -218,16 +224,43 @@ impl From for Relationship { } #[cfg(feature = "from_database")] -impl From for RelationshipStatus { - fn from(value: revolt_database::RelationshipStatus) -> Self { +impl From for Presence { + fn from(value: revolt_database::Presence) -> Self { match value { - revolt_database::RelationshipStatus::None => RelationshipStatus::None, - revolt_database::RelationshipStatus::User => RelationshipStatus::User, - revolt_database::RelationshipStatus::Friend => RelationshipStatus::Friend, - revolt_database::RelationshipStatus::Outgoing => RelationshipStatus::Outgoing, - revolt_database::RelationshipStatus::Incoming => RelationshipStatus::Incoming, - revolt_database::RelationshipStatus::Blocked => RelationshipStatus::Blocked, - revolt_database::RelationshipStatus::BlockedOther => RelationshipStatus::BlockedOther, + revolt_database::Presence::Online => Presence::Online, + revolt_database::Presence::Idle => Presence::Idle, + revolt_database::Presence::Focus => Presence::Focus, + revolt_database::Presence::Busy => Presence::Busy, + revolt_database::Presence::Invisible => Presence::Invisible, + } + } +} + +#[cfg(feature = "from_database")] +impl From for UserStatus { + fn from(value: revolt_database::UserStatus) -> Self { + UserStatus { + text: value.text, + presence: value.presence.map(|presence| presence.into()), + } + } +} + +#[cfg(feature = "from_database")] +impl From for UserProfile { + fn from(value: revolt_database::UserProfile) -> Self { + UserProfile { + content: value.content, + background: value.background.map(|file| file.into()), + } + } +} + +#[cfg(feature = "from_database")] +impl From for BotInformation { + fn from(value: revolt_database::BotInformation) -> Self { + BotInformation { + owner_id: value.owner, } } }