style: clean up code formatting and remove trailing whitespace

refactor: reorganize imports and fix type imports
This commit is contained in:
Evandro Fonseca Junior committed 2025-11-11 03:08:36 -03:00
1 parent d3704602fd
commit 47c04de6fe
232 files changed
+7140 -4798

No files matched your search

+96 -87
View File
@@ -3,13 +3,13 @@
* Integrado com Next.js
*/
import type { Server as HTTPServer } from "node:http";
import { Server as SocketIOServer } from "socket.io";
import type { Server as HTTPServer } from "http";
import { verifyAccessToken } from "@/lib/auth/jwt";
import { secureLogger } from "@/lib/secure-logger";
import { Message } from "@/lib/mongodb/models/Message";
import { Chat } from "@/lib/mongodb/models/Chat";
import { connectMongoDB } from "@/lib/mongodb/connection";
import { Chat } from "@/lib/mongodb/models/Chat";
import { Message } from "@/lib/mongodb/models/Message";
import { secureLogger } from "@/lib/secure-logger";
let io: SocketIOServer | null = null;
@@ -40,7 +40,7 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
try {
// Tentar obter token do auth primeiro
const token = socket.handshake.auth.token;
if (token) {
const payload = verifyAccessToken(token);
if (payload) {
@@ -58,7 +58,7 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
const sessionId = sessionIdMatch[1];
const { getSession } = await import("@/lib/redis/session");
const session = await getSession(sessionId);
if (session) {
const payload = verifyAccessToken(session.accessToken);
if (payload) {
@@ -90,7 +90,7 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
socket.on("join_chats", async () => {
try {
await connectMongoDB();
// Buscar todos os chats do usuário
const chats = await Chat.find({
$or: [{ buyer_id: userId }, { seller_id: userId }],
@@ -125,7 +125,9 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
}
if (chat.buyer_id !== userId && chat.seller_id !== userId) {
socket.emit("error", { message: "Você não tem permissão para acessar este chat" });
socket.emit("error", {
message: "Você não tem permissão para acessar este chat",
});
return;
}
@@ -140,7 +142,7 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
},
{
$set: { read_at: new Date() },
}
},
);
// Atualizar contador de não lidas
@@ -162,85 +164,93 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
});
// Enviar mensagem
socket.on("send_message", async (data: { chat_id: string; content: string }) => {
try {
const { chat_id, content } = data;
socket.on(
"send_message",
async (data: { chat_id: string; content: string }) => {
try {
const { chat_id, content } = data;
if (!content || content.trim().length === 0) {
socket.emit("error", { message: "Mensagem não pode estar vazia" });
return;
if (!content || content.trim().length === 0) {
socket.emit("error", { message: "Mensagem não pode estar vazia" });
return;
}
if (content.length > 1000) {
socket.emit("error", {
message: "Mensagem muito longa (máximo 1000 caracteres)",
});
return;
}
await connectMongoDB();
// Verificar se o chat existe e o usuário pertence a ele
const chat = await Chat.findOne({ chat_id });
if (!chat) {
socket.emit("error", { message: "Chat não encontrado" });
return;
}
if (chat.buyer_id !== userId && chat.seller_id !== userId) {
socket.emit("error", {
message:
"Você não tem permissão para enviar mensagens neste chat",
});
return;
}
// Criar mensagem
const message = new Message({
chat_id,
sender_id: userId,
content: content.trim(),
message_type: "text",
});
await message.save();
// Atualizar chat
chat.last_message_at = new Date();
chat.last_message_preview = content.substring(0, 100);
// Atualizar contador de não lidas
if (chat.buyer_id === userId) {
chat.seller_unread_count += 1;
} else {
chat.buyer_unread_count += 1;
}
await chat.save();
// Enviar mensagem para todos no chat (exceto o remetente)
io?.to(`chat:${chat_id}`).emit("new_message", {
message: {
_id: message._id.toString(),
chat_id: message.chat_id,
sender_id: message.sender_id,
content: message.content,
created_at: message.created_at,
read_at: message.read_at,
message_type: message.message_type,
},
});
// Confirmar para o remetente
socket.emit("message_sent", {
message_id: message._id.toString(),
});
// Mensagem enviada (log desabilitado)
} catch (error) {
secureLogger.error("Erro ao enviar mensagem", {
userId,
error: error instanceof Error ? error.message : "Erro desconhecido",
});
socket.emit("error", { message: "Erro ao enviar mensagem" });
}
if (content.length > 1000) {
socket.emit("error", { message: "Mensagem muito longa (máximo 1000 caracteres)" });
return;
}
await connectMongoDB();
// Verificar se o chat existe e o usuário pertence a ele
const chat = await Chat.findOne({ chat_id });
if (!chat) {
socket.emit("error", { message: "Chat não encontrado" });
return;
}
if (chat.buyer_id !== userId && chat.seller_id !== userId) {
socket.emit("error", { message: "Você não tem permissão para enviar mensagens neste chat" });
return;
}
// Criar mensagem
const message = new Message({
chat_id,
sender_id: userId,
content: content.trim(),
message_type: "text",
});
await message.save();
// Atualizar chat
chat.last_message_at = new Date();
chat.last_message_preview = content.substring(0, 100);
// Atualizar contador de não lidas
if (chat.buyer_id === userId) {
chat.seller_unread_count += 1;
} else {
chat.buyer_unread_count += 1;
}
await chat.save();
// Enviar mensagem para todos no chat (exceto o remetente)
io!.to(`chat:${chat_id}`).emit("new_message", {
message: {
_id: message._id.toString(),
chat_id: message.chat_id,
sender_id: message.sender_id,
content: message.content,
created_at: message.created_at,
read_at: message.read_at,
message_type: message.message_type,
},
});
// Confirmar para o remetente
socket.emit("message_sent", {
message_id: message._id.toString(),
});
// Mensagem enviada (log desabilitado)
} catch (error) {
secureLogger.error("Erro ao enviar mensagem", {
userId,
error: error instanceof Error ? error.message : "Erro desconhecido",
});
socket.emit("error", { message: "Erro ao enviar mensagem" });
}
});
},
);
// Indicador de "digitando..."
socket.on("typing", (data: { chat_id: string; is_typing: boolean }) => {
@@ -267,4 +277,3 @@ export function initSocketIO(httpServer?: HTTPServer): SocketIOServer {
export function getSocketIO(): SocketIOServer | null {
return io;
}