2025-08-04 17:45:44 +02:00
|
|
|
import { TRPCError } from "@trpc/server";
|
|
|
|
|
import type { ChatsChatid } from "~/schemas/public/Chats";
|
2025-08-28 18:27:07 +02:00
|
|
|
import type { Messages, MessagesMessageid } from "~/schemas/public/Messages";
|
2025-08-04 17:45:44 +02:00
|
|
|
import type { UsersId } from "~/schemas/public/Users";
|
2025-08-28 18:27:07 +02:00
|
|
|
import type { Querier } from "~/server/db";
|
2025-08-04 17:45:44 +02:00
|
|
|
|
|
|
|
|
export type ChatMessage = Messages & {
|
2025-08-28 18:27:07 +02:00
|
|
|
sender_isAdmin: boolean;
|
|
|
|
|
sender_nome: string;
|
2025-08-04 17:45:44 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const editMessage = async ({
|
2025-08-28 18:27:07 +02:00
|
|
|
db,
|
|
|
|
|
messageId,
|
|
|
|
|
message,
|
2025-08-04 17:45:44 +02:00
|
|
|
}: {
|
2025-08-28 18:27:07 +02:00
|
|
|
db: Querier;
|
|
|
|
|
messageId: MessagesMessageid;
|
|
|
|
|
message: string;
|
2025-08-04 17:45:44 +02:00
|
|
|
}) => {
|
2025-08-28 18:27:07 +02:00
|
|
|
try {
|
|
|
|
|
return await db
|
|
|
|
|
.updateTable("messages")
|
|
|
|
|
.set({
|
|
|
|
|
message: message,
|
|
|
|
|
})
|
|
|
|
|
.where("messages.messageid", "=", messageId)
|
|
|
|
|
.returning("messageid")
|
|
|
|
|
.execute();
|
|
|
|
|
} catch {
|
|
|
|
|
throw new TRPCError({
|
|
|
|
|
code: "BAD_REQUEST",
|
|
|
|
|
message: "Error while editing message",
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-08-04 17:45:44 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const setReadMessage = async ({
|
2025-08-28 18:27:07 +02:00
|
|
|
db,
|
|
|
|
|
chatId,
|
|
|
|
|
reader,
|
2025-08-04 17:45:44 +02:00
|
|
|
}: {
|
2025-08-28 18:27:07 +02:00
|
|
|
db: Querier;
|
|
|
|
|
chatId: ChatsChatid;
|
|
|
|
|
reader: UsersId;
|
2025-08-04 17:45:44 +02:00
|
|
|
}) => {
|
2025-08-28 18:27:07 +02:00
|
|
|
try {
|
|
|
|
|
await db
|
|
|
|
|
.updateTable("messages")
|
|
|
|
|
.set({
|
|
|
|
|
isread: true,
|
|
|
|
|
})
|
|
|
|
|
.where("messages.isread", "=", false)
|
|
|
|
|
.where("messages.sender", "!=", reader)
|
|
|
|
|
.where("messages.chatid", "=", chatId)
|
|
|
|
|
.returning("messages.chatid")
|
|
|
|
|
.execute();
|
|
|
|
|
} catch {
|
|
|
|
|
throw new TRPCError({
|
|
|
|
|
code: "BAD_REQUEST",
|
|
|
|
|
message: "Error while setting read status",
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-08-04 17:45:44 +02:00
|
|
|
};
|