From cee8b55599884414bd65ee778734db3373c00f71 Mon Sep 17 00:00:00 2001 From: Radical Date: Sat, 17 May 2025 14:11:57 +0200 Subject: [PATCH] fix: make message storing/fetching work properly --- src/api/v1/servers/uuid/channels/uuid/messages.rs | 2 +- src/structs.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api/v1/servers/uuid/channels/uuid/messages.rs b/src/api/v1/servers/uuid/channels/uuid/messages.rs index 3bfeaaa..928afbe 100644 --- a/src/api/v1/servers/uuid/channels/uuid/messages.rs +++ b/src/api/v1/servers/uuid/channels/uuid/messages.rs @@ -11,7 +11,7 @@ struct MessageRequest { } #[get("{uuid}/channels/{channel_uuid}/messages")] -pub async fn get(req: HttpRequest, path: web::Path<(Uuid, Uuid)>, message_request: web::Json, data: web::Data) -> Result { +pub async fn get(req: HttpRequest, path: web::Path<(Uuid, Uuid)>, message_request: web::Query, data: web::Data) -> Result { let headers = req.headers(); let auth_header = get_auth_header(headers); diff --git a/src/structs.rs b/src/structs.rs index cde4f7e..44862c0 100644 --- a/src/structs.rs +++ b/src/structs.rs @@ -171,7 +171,7 @@ impl Channel { } pub async fn fetch_messages(&self, pool: &Pool, amount: i64, offset: i64) -> Result, HttpResponse> { - let row = sqlx::query_as(&format!("SELECT uuid, user_uuid, message FROM channels WHERE channel_uuid = '{}' ORDER BY uuid LIMIT $1 OFFSET $2", self.uuid)) + let row = sqlx::query_as(&format!("SELECT CAST(uuid AS VARCHAR), CAST(user_uuid AS VARCHAR), CAST(channel_uuid AS VARCHAR), message FROM messages WHERE channel_uuid = '{}' ORDER BY uuid DESC LIMIT $1 OFFSET $2", self.uuid)) .bind(amount) .bind(offset) .fetch_all(pool) @@ -190,7 +190,7 @@ impl Channel { pub async fn new_message(&self, pool: &Pool, user_uuid: Uuid, message: String) -> Result { let message_uuid = Uuid::now_v7(); - let row = sqlx::query(&format!("INSERT INTO messages (uuid, channel_uuid, user_uuid, message) VALUES ('{}', '{}', '{}', $1", message_uuid, self.uuid, user_uuid)) + let row = sqlx::query(&format!("INSERT INTO messages (uuid, channel_uuid, user_uuid, message) VALUES ('{}', '{}', '{}', $1)", message_uuid, self.uuid, user_uuid)) .bind(&message) .execute(pool) .await;