style: clean up code formatting and remove trailing whitespace
refactor: reorganize imports and fix type imports
This commit is contained in:
1 parent
d3704602fd
commit
47c04de6fe
232 files changed
+7140
-4798
No files matched your search
+96
-87
@@ -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;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user