From 7872310c6002eb290936032a505543e86478b2a0 Mon Sep 17 00:00:00 2001 From: Bilal Dieumegard Date: Sun, 1 Dec 2024 15:06:30 +0100 Subject: [PATCH] Deplacement de la requete post d'utilisateur vers le chemin users au lieu de user/[id] --- src/routes/api/user/[id]/+page.server.ts | 41 ------------------------ src/routes/api/users/+page.server.ts | 41 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/routes/api/user/[id]/+page.server.ts b/src/routes/api/user/[id]/+page.server.ts index 5052a08..3282d88 100644 --- a/src/routes/api/user/[id]/+page.server.ts +++ b/src/routes/api/user/[id]/+page.server.ts @@ -56,47 +56,6 @@ export async function GET({ params }) { } } -export async function POST({ request }) { - return new Promise((resolve, reject) => { - // Utilisation de multer pour récupérer le fichier - upload.single('profilePicture')(request.raw, request.raw, async (err) => { - if (err) { - console.error('Erreur de téléchargement:', err); - return reject(json({ error: 'Erreur lors du téléchargement du fichier' }, { status: 500 })); - } - - // Récupérer les données du formulaire (sans le fichier) - const { pseudo, nom, prenom, email, password } = await request.json(); - - // L'URL de l'image sera le chemin relatif à partir du dossier uploads - const imageUrl = request.file ? `${destinationDir}/${request.file.filename}` : null; - - try { - // Créer un nouvel utilisateur avec l'URL de l'image - const user = await prisma.user.create({ - data: { - pseudo, - nom, - prenom, - email, - password, - profilePictureUrl: imageUrl, // Stocker l'URL de l'image - }, - }); - - // Mettre l'utilisateur dans le cache Redis - await redisClient.set(`user:${user.id}`, JSON.stringify(user), { EX: 3600 }); - - // Réponse avec les données de l'utilisateur - return resolve(json(user, { status: 201 })); - } catch (error) { - console.error('Erreur lors de la création de l\'utilisateur:', error); - return reject(json({ error: 'Erreur lors de la création de l\'utilisateur' }, { status: 500 })); - } - }); - }); -} - // Mettre à jour un utilisateur avec PUT export async function PUT({ params, request }) { const userId = parseInt(params.id); diff --git a/src/routes/api/users/+page.server.ts b/src/routes/api/users/+page.server.ts index 0d7b259..4de2048 100644 --- a/src/routes/api/users/+page.server.ts +++ b/src/routes/api/users/+page.server.ts @@ -25,3 +25,44 @@ export async function GET() { return json({ error: 'Erreur serveur' }, { status: 500 }); } } + +export async function POST({ request }) { + return new Promise((resolve, reject) => { + // Utilisation de multer pour récupérer le fichier + upload.single('profilePicture')(request.raw, request.raw, async (err) => { + if (err) { + console.error('Erreur de téléchargement:', err); + return reject(json({ error: 'Erreur lors du téléchargement du fichier' }, { status: 500 })); + } + + // Récupérer les données du formulaire (sans le fichier) + const { pseudo, nom, prenom, email, password } = await request.json(); + + // L'URL de l'image sera le chemin relatif à partir du dossier uploads + const imageUrl = request.file ? `${destinationDir}/${request.file.filename}` : null; + + try { + // Créer un nouvel utilisateur avec l'URL de l'image + const user = await prisma.user.create({ + data: { + pseudo, + nom, + prenom, + email, + password, + profilePictureUrl: imageUrl, // Stocker l'URL de l'image + }, + }); + + // Mettre l'utilisateur dans le cache Redis + await redisClient.set(`user:${user.id}`, JSON.stringify(user), { EX: 3600 }); + + // Réponse avec les données de l'utilisateur + return resolve(json(user, { status: 201 })); + } catch (error) { + console.error('Erreur lors de la création de l\'utilisateur:', error); + return reject(json({ error: 'Erreur lors de la création de l\'utilisateur' }, { status: 500 })); + } + }); + }); +}