const express = require("express"); const bcrypt = require("bcryptjs"); const jwt = require("jsonwebtoken"); const { PrismaClient } = require("@prisma/client"); const generateToken = require("../utils/generateToken"); const authMiddleware = require("../middleware/authMiddleware"); const router = express.Router(); const prisma = new PrismaClient(); // Kayıt ol router.post("/register", async (req, res) => { try { const { username, email, password } = req.body; const existingUser = await prisma.user.findUnique({ where: { email } }); if (existingUser) return res.status(400).json({ message: "Bu e-posta zaten kayıtlı." }); const hashedPassword = await bcrypt.hash(password, 10); const user = await prisma.user.create({ data: { username, email, passwordHash: hashedPassword }, }); const token = generateToken(user.id); res.json({ token, user: { id: user.id, username: user.username, email: user.email } }); } catch (err) { res.status(500).json({ message: "Kayıt işlemi başarısız.", error: err.message }); } }); // Giriş yap router.post("/login", async (req, res) => { try { const { email, password } = req.body; const user = await prisma.user.findUnique({ where: { email } }); if (!user) return res.status(400).json({ message: "Kullanıcı bulunamadı." }); const isMatch = await bcrypt.compare(password, user.passwordHash); if (!isMatch) return res.status(401).json({ message: "Şifre hatalı." }); // userId olarak imzala const token = generateToken(user.id); res.json({ token, user: { id: user.id, username: user.username, email: user.email,avatarUrl:user.avatarUrl }, }); } catch (err) { console.error(err); res .status(500) .json({ message: "Giriş işlemi başarısız.", error: err.message }); } }); router.get("/me", authMiddleware, async (req, res) => { try { const user = await prisma.user.findUnique({ where: { id: req.user.userId }, select: { id: true, username: true, email: true,avatarUrl:true }, }) if (!user) return res.status(404).json({ error: "Kullanıcı bulunamadı" }) res.json(user) } catch (err) { console.error(err) res.status(500).json({ error: "Sunucu hatası" }) } }) module.exports = router;