feat: Chat request implementation #14

Manually merged
awiteb merged 55 commits from awiteb/chat-request-and-response into master 2024-07-18 14:21:39 +02:00 AGit
Showing only changes of commit 21880c5f82 - Show all commits

View file

@ -103,14 +103,12 @@ impl UsersStatusExt for DatabaseConnection {
whitelister: &UserModel, whitelister: &UserModel,
target_public_key: &PublicKey, target_public_key: &PublicKey,
) -> ServerResult<bool> { ) -> ServerResult<bool> {
whitelister get_user_status(
awiteb marked this conversation as resolved
Review

you can use get_user_status here and also is_blacklisted. also in remove... functions

you can use `get_user_status` here and also `is_blacklisted`. also in `remove...` functions
.find_related(UsersStatusEntity) self,
.filter( whitelister,
UsersStatusColumn::Target target_public_key,
.eq(target_public_key.to_string()) AccessStatus::Whitelisted,
.and(UsersStatusColumn::Status.eq(AccessStatus::Whitelisted)),
) )
.one(self)
.await .await
.map(|u| u.is_some()) .map(|u| u.is_some())
.map_err(Into::into) .map_err(Into::into)
@ -121,14 +119,12 @@ impl UsersStatusExt for DatabaseConnection {
blacklister: &UserModel, blacklister: &UserModel,
target_public_key: &PublicKey, target_public_key: &PublicKey,
) -> ServerResult<bool> { ) -> ServerResult<bool> {
blacklister get_user_status(
.find_related(UsersStatusEntity) self,
.filter( blacklister,
UsersStatusColumn::Target target_public_key,
.eq(target_public_key.to_string()) AccessStatus::Blacklisted,
.and(UsersStatusColumn::Status.eq(AccessStatus::Blacklisted)),
) )
.one(self)
.await .await
.map(|u| u.is_some()) .map(|u| u.is_some())
.map_err(Into::into) .map_err(Into::into)
@ -223,14 +219,12 @@ impl UsersStatusExt for DatabaseConnection {
whitelister: &UserModel, whitelister: &UserModel,
target_public_key: &PublicKey, target_public_key: &PublicKey,
) -> ServerResult<()> { ) -> ServerResult<()> {
if let Some(target_user) = whitelister if let Some(target_user) = get_user_status(
.find_related(UsersStatusEntity) self,
.filter( whitelister,
UsersStatusColumn::Target target_public_key,
.eq(target_public_key.to_string()) AccessStatus::Whitelisted,
.and(UsersStatusColumn::Status.eq(AccessStatus::Whitelisted)),
) )
.one(self)
.await? .await?
{ {
target_user.delete(self).await?; target_user.delete(self).await?;
@ -243,14 +237,12 @@ impl UsersStatusExt for DatabaseConnection {
blacklister: &UserModel, blacklister: &UserModel,
target_public_key: &PublicKey, target_public_key: &PublicKey,
) -> ServerResult<()> { ) -> ServerResult<()> {
if let Some(target_user) = blacklister if let Some(target_user) = get_user_status(
.find_related(UsersStatusEntity) self,
.filter( blacklister,
UsersStatusColumn::Target target_public_key,
.eq(target_public_key.to_string()) AccessStatus::Blacklisted,
.and(UsersStatusColumn::Status.eq(AccessStatus::Blacklisted)),
) )
.one(self)
.await? .await?
{ {
target_user.delete(self).await?; target_user.delete(self).await?;