feat: add needed DB entries for editing

This commit is contained in:
Radical 2025-07-12 19:43:36 +02:00
parent 42b2d08a00
commit b7b07141f9
5 changed files with 24 additions and 0 deletions

View file

@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
ALTER TABLE messages DROP COLUMN is_edited;

View file

@ -0,0 +1,2 @@
-- Your SQL goes here
ALTER TABLE messages ADD COLUMN is_edited BOOLEAN NOT NULL DEFAULT FALSE;

View file

@ -280,6 +280,7 @@ impl Channel {
user_uuid,
message,
reply_to,
is_edited: false,
};
let mut conn = data.pool.get().await?;
@ -292,6 +293,21 @@ impl Channel {
message.build(data).await
}
/*pub async fn edit_message(&self, data: &Data, user_uuid: Uuid, message_uuid: Uuid, message: String) -> Result<Message, Error> {
use messages::dsl;
let mut conn = data.pool.get().await?;
update(messages::table)
.filter(dsl::user_uuid.eq(user_uuid))
.filter(dsl::uuid.eq(message_uuid))
.set((dsl::is_edited.eq(true), dsl::message.eq(message)))
.execute(&mut conn)
.await?;
Ok(())
}*/
pub async fn set_name(&mut self, data: &Data, new_name: String) -> Result<(), Error> {
if !CHANNEL_REGEX.is_match(&new_name) {
return Err(Error::BadRequest("Channel name is invalid".to_string()));

View file

@ -15,6 +15,7 @@ pub struct MessageBuilder {
pub user_uuid: Uuid,
pub message: String,
pub reply_to: Option<Uuid>,
pub is_edited: bool,
}
impl MessageBuilder {
@ -27,6 +28,7 @@ impl MessageBuilder {
user_uuid: self.user_uuid,
message: self.message.clone(),
reply_to: self.reply_to,
is_edited: self.is_edited,
user,
})
}
@ -39,5 +41,6 @@ pub struct Message {
user_uuid: Uuid,
message: String,
reply_to: Option<Uuid>,
is_edited: bool,
user: User,
}

View file

@ -94,6 +94,7 @@ diesel::table! {
#[max_length = 4000]
message -> Varchar,
reply_to -> Nullable<Uuid>,
is_edited -> Bool,
}
}