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

+20 -24
View File
@@ -1,27 +1,24 @@
import { NextRequest, NextResponse } from "next/server";
import {
checkRateLimit,
getClientIP,
createRateLimitResponse,
} from "@/lib/rate-limiter";
import { secureLogger } from "@/lib/secure-logger";
import { loginSchema } from "@/lib/validation-schemas";
import { randomUUID } from "node:crypto";
import { type NextRequest, NextResponse } from "next/server";
import { generateAccessToken, generateRefreshToken } from "@/lib/auth/jwt";
import { comparePassword } from "@/lib/auth/password";
import {
generateAccessToken,
generateRefreshToken,
} from "@/lib/auth/jwt";
getDefaultSubscriptionTier,
getSubscriptionTierById,
} from "@/lib/prisma/queries/subscription-tiers";
import {
getUserByEmail,
getUserByUsername,
updateLastLogin,
} from "@/lib/prisma/queries/users";
import { setSession } from "@/lib/redis/session";
import { randomUUID } from "crypto";
import {
getDefaultSubscriptionTier,
getSubscriptionTierById,
} from "@/lib/prisma/queries/subscription-tiers";
checkRateLimit,
createRateLimitResponse,
getClientIP,
} from "@/lib/rate-limiter";
import { setSession } from "@/lib/redis/session";
import { secureLogger } from "@/lib/secure-logger";
import { loginSchema } from "@/lib/validation-schemas";
export async function POST(request: NextRequest) {
try {
@@ -55,7 +52,7 @@ export async function POST(request: NextRequest) {
error: "Dados de entrada inválidos",
details: errors,
},
{ status: 400 }
{ status: 400 },
);
}
@@ -77,7 +74,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Email/username ou senha incorretos",
},
{ status: 401 }
{ status: 401 },
);
}
@@ -88,7 +85,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Conta desativada. Entre em contato com o suporte.",
},
{ status: 403 }
{ status: 403 },
);
}
@@ -104,7 +101,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Erro interno. Tente novamente mais tarde.",
},
{ status: 500 }
{ status: 500 },
);
}
@@ -121,7 +118,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Email/username ou senha incorretos",
},
{ status: 401 }
{ status: 401 },
);
}
@@ -181,7 +178,7 @@ export async function POST(request: NextRequest) {
},
accessToken,
},
{ status: 200 }
{ status: 200 },
);
// Adicionar refresh token e sessionId como cookies httpOnly
@@ -220,8 +217,7 @@ export async function POST(request: NextRequest) {
success: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}
+8 -9
View File
@@ -1,19 +1,19 @@
import { NextRequest, NextResponse } from "next/server";
import { secureLogger } from "@/lib/secure-logger";
import { type NextRequest, NextResponse } from "next/server";
import { requireAuth } from "@/lib/auth/middleware";
import { getUserById } from "@/lib/prisma/queries/users";
import { getUserCharacters } from "@/lib/prisma/queries/characters";
import { getUserById } from "@/lib/prisma/queries/users";
import { secureLogger } from "@/lib/secure-logger";
export async function GET(request: NextRequest) {
try {
// Middleware de autenticação
const authResult = await requireAuth(request);
// Se retornou NextResponse, é um erro de autenticação
if (authResult instanceof NextResponse) {
return authResult;
}
const auth = authResult;
// Buscar dados do usuário
@@ -25,7 +25,7 @@ export async function GET(request: NextRequest) {
success: false,
error: "Usuário não encontrado",
},
{ status: 404 }
{ status: 404 },
);
}
@@ -66,7 +66,7 @@ export async function GET(request: NextRequest) {
createdAt: char.created_at,
})),
},
{ status: 200 }
{ status: 200 },
);
} catch (error) {
// Se for NextResponse (erro de autenticação), re-lançar
@@ -85,8 +85,7 @@ export async function GET(request: NextRequest) {
success: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}
+7 -8
View File
@@ -1,11 +1,11 @@
import { NextRequest, NextResponse } from "next/server";
import { type NextRequest, NextResponse } from "next/server";
import { generateAccessToken, verifyRefreshToken } from "@/lib/auth/jwt";
import {
checkRateLimit,
getClientIP,
createRateLimitResponse,
getClientIP,
} from "@/lib/rate-limiter";
import { secureLogger } from "@/lib/secure-logger";
import { verifyRefreshToken, generateAccessToken } from "@/lib/auth/jwt";
export async function POST(request: NextRequest) {
try {
@@ -26,7 +26,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Refresh token não fornecido",
},
{ status: 401 }
{ status: 401 },
);
}
@@ -40,7 +40,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Refresh token inválido ou expirado",
},
{ status: 401 }
{ status: 401 },
);
response.cookies.delete("refreshToken");
@@ -60,7 +60,7 @@ export async function POST(request: NextRequest) {
success: true,
accessToken,
},
{ status: 200 }
{ status: 200 },
);
} catch (error) {
secureLogger.error("❌ Erro ao renovar token", {
@@ -74,8 +74,7 @@ export async function POST(request: NextRequest) {
success: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}
+21 -30
View File
@@ -1,29 +1,18 @@
import { NextRequest, NextResponse } from "next/server";
import { randomUUID } from "node:crypto";
import { type NextRequest, NextResponse } from "next/server";
import { generateAccessToken, generateRefreshToken } from "@/lib/auth/jwt";
import { hashPassword } from "@/lib/auth/password";
import { isServerActive } from "@/lib/prisma/queries/servers";
import { getDefaultSubscriptionTier } from "@/lib/prisma/queries/subscription-tiers";
import { getUserByEmail, getUserByUsername } from "@/lib/prisma/queries/users";
import {
checkRateLimit,
getClientIP,
createRateLimitResponse,
getClientIP,
} from "@/lib/rate-limiter";
import { setSession } from "@/lib/redis/session";
import { secureLogger } from "@/lib/secure-logger";
import { registerSchema } from "@/lib/validation-schemas";
import { hashPassword } from "@/lib/auth/password";
import {
generateAccessToken,
generateRefreshToken,
} from "@/lib/auth/jwt";
import {
getUserByEmail,
getUserByUsername,
} from "@/lib/prisma/queries/users";
import {
isServerActive,
incrementUsersForServers,
} from "@/lib/prisma/queries/servers";
import { setSession } from "@/lib/redis/session";
import { randomUUID } from "crypto";
import { createUser } from "@/lib/prisma/queries/users";
import { createCharacter } from "@/lib/prisma/queries/characters";
import { getDefaultSubscriptionTier } from "@/lib/prisma/queries/subscription-tiers";
export async function POST(request: NextRequest) {
try {
@@ -62,7 +51,7 @@ export async function POST(request: NextRequest) {
error: "Dados de entrada inválidos",
details: errors,
},
{ status: 400 }
{ status: 400 },
);
}
@@ -76,7 +65,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Email já está em uso",
},
{ status: 409 }
{ status: 409 },
);
}
@@ -88,7 +77,7 @@ export async function POST(request: NextRequest) {
success: false,
error: "Username já está em uso",
},
{ status: 409 }
{ status: 409 },
);
}
@@ -104,7 +93,7 @@ export async function POST(request: NextRequest) {
success: false,
error: `Servidor "${serverName}" não existe ou não está ativo`,
},
{ status: 400 }
{ status: 400 },
);
}
}
@@ -114,8 +103,11 @@ export async function POST(request: NextRequest) {
// Criar usuário e personagens em transação atômica usando Prisma
const { prisma } = await import("@/lib/prisma/app");
const createdCharacters: Array<{ characterName: string; serverName: string }> = [];
const createdCharacters: Array<{
characterName: string;
serverName: string;
}> = [];
// Usar transação Prisma
const newUser = await prisma.$transaction(async (tx) => {
@@ -199,7 +191,7 @@ export async function POST(request: NextRequest) {
{
tierSlug: defaultTier?.slug ?? undefined,
tierLevel: defaultTier?.level ?? undefined,
}
},
);
// Criar sessão no Redis
@@ -235,7 +227,7 @@ export async function POST(request: NextRequest) {
},
accessToken,
},
{ status: 201 }
{ status: 201 },
);
// Adicionar refresh token e sessionId como cookies httpOnly
@@ -274,8 +266,7 @@ export async function POST(request: NextRequest) {
success: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}
+30 -23
View File
@@ -1,17 +1,25 @@
import { NextRequest, NextResponse } from "next/server";
import { cookies } from "next/headers";
import { secureLogger } from "@/lib/secure-logger";
import { getSession, refreshSession, deleteSession, setSession } from "@/lib/redis/session";
import { type NextRequest, NextResponse } from "next/server";
import { verifyAccessToken } from "@/lib/auth/jwt";
import { getMainCharacter } from "@/lib/prisma/queries/characters";
import {
getDefaultSubscriptionTier,
getSubscriptionTierById,
} from "@/lib/prisma/queries/subscription-tiers";
import { getUserById } from "@/lib/prisma/queries/users";
import { getSubscriptionTierById, getDefaultSubscriptionTier } from "@/lib/prisma/queries/subscription-tiers";
import {
deleteSession,
getSession,
refreshSession,
setSession,
} from "@/lib/redis/session";
import { secureLogger } from "@/lib/secure-logger";
/**
* GET /api/auth/session
* Verifica e retorna dados da sessão atual
*/
export async function GET(request: NextRequest) {
export async function GET(_request: NextRequest) {
try {
// Buscar sessionId do cookie
const cookieStore = await cookies();
@@ -24,7 +32,7 @@ export async function GET(request: NextRequest) {
authenticated: false,
error: "Nenhuma sessão encontrada",
},
{ status: 401 }
{ status: 401 },
);
}
@@ -39,7 +47,7 @@ export async function GET(request: NextRequest) {
authenticated: false,
error: "Sessão expirada ou inválida",
},
{ status: 401 }
{ status: 401 },
);
response.cookies.delete("sessionId");
@@ -58,21 +66,19 @@ export async function GET(request: NextRequest) {
authenticated: false,
error: "Token expirado",
},
{ status: 401 }
{ status: 401 },
);
response.cookies.delete("sessionId");
return response;
}
let tierInfo:
| {
subscription_tier_id: number | null;
name: string | null;
slug: string | null;
level: number | null;
}
| null = {
let tierInfo: {
subscription_tier_id: number | null;
name: string | null;
slug: string | null;
level: number | null;
} | null = {
subscription_tier_id: session.subscriptionTierId,
name: session.subscriptionTierName,
slug: session.subscriptionTierSlug,
@@ -86,7 +92,9 @@ export async function GET(request: NextRequest) {
) {
const dbUser = await getUserById(session.userId);
const fetchedTier = dbUser?.subscription_tier
? await getSubscriptionTierById(dbUser.subscription_tier.subscription_tier_id)
? await getSubscriptionTierById(
dbUser.subscription_tier.subscription_tier_id,
)
: await getDefaultSubscriptionTier();
tierInfo = fetchedTier
@@ -139,7 +147,7 @@ export async function GET(request: NextRequest) {
: null,
},
},
{ status: 200 }
{ status: 200 },
);
} catch (error) {
secureLogger.error("❌ Erro ao verificar sessão", {
@@ -154,7 +162,7 @@ export async function GET(request: NextRequest) {
authenticated: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}
@@ -163,7 +171,7 @@ export async function GET(request: NextRequest) {
* DELETE /api/auth/session
* Encerra a sessão atual
*/
export async function DELETE(request: NextRequest) {
export async function DELETE(_request: NextRequest) {
try {
const cookieStore = await cookies();
const sessionId = cookieStore.get("sessionId")?.value;
@@ -177,7 +185,7 @@ export async function DELETE(request: NextRequest) {
success: true,
message: "Sessão encerrada",
},
{ status: 200 }
{ status: 200 },
);
response.cookies.delete("sessionId");
@@ -193,8 +201,7 @@ export async function DELETE(request: NextRequest) {
success: false,
error: error instanceof Error ? error.message : "Erro interno",
},
{ status: 500 }
{ status: 500 },
);
}
}