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
11 changed files with 26 additions and 18 deletions
Showing only changes of commit b712f96f59 - Show all commits

View file

@ -23,13 +23,14 @@ use chrono::Utc;
use sea_orm::entity::prelude::*;
use super::users::Entity as UserEntity;
use crate::prelude::UserId;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "blacklist")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub user_id: i32,
pub id: UserId,
pub user_id: UserId,
/// Public key of the target
pub target: String,
pub blacklisted_at: chrono::DateTime<Utc>,

View file

@ -23,13 +23,14 @@ use chrono::Utc;
use sea_orm::entity::prelude::*;
use super::users::Entity as UserEntity;
use crate::prelude::UserId;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "in_chat_requests")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub recipient_id: i32,
pub id: UserId,
pub recipient_id: UserId,
/// Public key of the sender
pub sender: String,
/// The timestamp of the request, when it was received

View file

@ -23,13 +23,14 @@ use chrono::Utc;
use sea_orm::entity::prelude::*;
use super::users::Entity as UserEntity;
use crate::prelude::UserId;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "out_chat_requests")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub sender_id: i32,
pub id: UserId,
pub sender_id: UserId,
/// Public key of the recipient
pub recipient: String,
/// The timestamp of the request, when it was sent

View file

@ -33,6 +33,9 @@ pub use sea_orm::{
SqlErr,
};
/// User ID type
pub type UserId = i64;
pub use super::blacklist::{
ActiveModel as BlacklistActiveModel,
Column as BlacklistColumn,

View file

@ -25,12 +25,13 @@ use super::blacklist::Entity as BlacklistEntity;
use super::incoming_chat_requests::Entity as InChatRequestsEntity;
use super::outgoing_chat_requests::Entity as OutChatRequestsEntity;
use super::whitelist::Entity as WhitelistEntity;
use crate::prelude::UserId;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "users")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub id: UserId,
pub public_key: String,
pub is_admin: bool,
}

View file

@ -23,13 +23,14 @@ use chrono::Utc;
use sea_orm::entity::prelude::*;
use super::users::Entity as UserEntity;
use crate::prelude::UserId;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "whitelist")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub user_id: i32,
pub id: UserId,
pub user_id: UserId,
/// Public key of the target
pub target: String,
pub whitelisted_at: chrono::DateTime<Utc>,

View file

@ -34,12 +34,12 @@ impl MigrationTrait for Migration {
.if_not_exists()
.col(
ColumnDef::new(Blacklist::Id)
.integer()
.big_integer()
.not_null()
.auto_increment()
.primary_key(),
)
.col(ColumnDef::new(Blacklist::UserId).integer().not_null())
.col(ColumnDef::new(Blacklist::UserId).big_integer().not_null())
.col(ColumnDef::new(Blacklist::Target).string().not_null())
.col(ColumnDef::new(Blacklist::Reason).string_len(400))
awiteb marked this conversation as resolved
Review

reason is unused

reason is unused
Review

I forgot to remove it, this should be a feature soon. Is good right?

I forgot to remove it, this should be a feature soon. Is good right?
Review

yah, if you want to add it, I think we can do in this PR, just change the whitelist table (or if we are merging both, it will be a special column for blacklist)

So we can either remove it or add it as a feature

yah, if you want to add it, I think we can do in this PR, just change the whitelist table (or if we are merging both, it will be a special column for blacklist) So we can either remove it or add it as a feature
Review

Let's make it later, since we'll merge them.
I don't want to think about it right now

Let's make it later, since we'll merge them. I don't want to think about it right now
.col(

View file

@ -34,14 +34,14 @@ impl MigrationTrait for Migration {
.if_not_exists()
.col(
ColumnDef::new(InChatRequests::Id)
.integer()
.big_integer()
.not_null()
.auto_increment()
.primary_key(),
)
.col(
ColumnDef::new(InChatRequests::RecipientId)
.integer()
.big_integer()
.not_null(),
)
.col(ColumnDef::new(InChatRequests::Sender).string().not_null())

View file

@ -34,14 +34,14 @@ impl MigrationTrait for Migration {
.if_not_exists()
.col(
ColumnDef::new(OutChatRequests::Id)
.integer()
.big_integer()
.not_null()
.auto_increment()
.primary_key(),
)
.col(
ColumnDef::new(OutChatRequests::SenderId)
.integer()
.big_integer()
.not_null(),
)
.col(

View file

@ -34,7 +34,7 @@ impl MigrationTrait for Migration {
.if_not_exists()
.col(
ColumnDef::new(Users::Id)
.integer()
.big_integer()
.not_null()
.auto_increment()
.primary_key(),

View file

@ -34,12 +34,12 @@ impl MigrationTrait for Migration {
.if_not_exists()
.col(
ColumnDef::new(Whitelist::Id)
.integer()
.big_integer()
.not_null()
.auto_increment()
.primary_key(),
)
.col(ColumnDef::new(Whitelist::UserId).integer().not_null())
.col(ColumnDef::new(Whitelist::UserId).big_integer().not_null())
.col(ColumnDef::new(Whitelist::Target).string().not_null())
.col(
ColumnDef::new(Whitelist::WhitelistedAt)