HotTRDealsBackend/routes/account/accountSettingsRoutes.js

41 lines
1.3 KiB
JavaScript

const express = require("express")
const multer = require("multer")
const fs = require("fs")
const { uploadProfileImage } = require("../../services/supabase/supabaseUploadService")
const { validateImage } = require("../../utils/validateImage")
const authMiddleware = require("../../middleware/authMiddleware")
const { updateAvatarUrl, getUserProfile } = require("../../services/profile/myProfileService")
const router = express.Router()
const upload = multer({ dest: "uploads/" })
router.post("/avatar", authMiddleware, upload.single("file"), async (req, res) => {
try {
const file = req.file
if (!file) return res.status(400).json({ error: "No file uploaded" })
validateImage({ mimetype: file.mimetype, size: file.size })
const data = fs.readFileSync(file.path)
const url = await uploadProfileImage(req.user.userId, { data, mimetype: file.mimetype })
fs.unlinkSync(file.path)
const updated = await updateAvatarUrl(req.user.userId, url)
res.json({ message: "Avatar updated", user: updated })
} catch (err) {
console.error(err)
res.status(400).json({ error: err.message })
}
})
router.get("/me", authMiddleware, async (req, res) => {
try {
const user = await getUserProfile(req.user.id)
res.json(user)
} catch (err) {
res.status(400).json({ error: err.message })
}
})
module.exports = router