diff --git a/.github/workflows/deployVercel.yml b/.github/workflows/deployVercel.yml index 51d7911..f6fdc1c 100644 --- a/.github/workflows/deployVercel.yml +++ b/.github/workflows/deployVercel.yml @@ -2,7 +2,7 @@ name: Deploy to Vercel on: push: - branches: ['deployed'] + branches: ['cleaning'] jobs: diff --git a/src/routes/users.ts b/src/routes/users.ts index 2e20c27..860b22d 100644 --- a/src/routes/users.ts +++ b/src/routes/users.ts @@ -1,23 +1,31 @@ -import express from 'express'; -import supabase from '../supabaseClient'; +import express, { Request, Response, NextFunction } from 'express'; +//import supabase from '../supabaseClient'; +import supabaseAdmin from '../supabaseAdminClient'; const router = express.Router(); + +// Middleware to use the service role key for specific routes +const serviceRoleMiddleware = (req: Request, res: Response, next: NextFunction) => { + (req as any).supabaseAdmin = supabaseAdmin; + next(); +}; + // Get all users -router.get('/all', async (req, res) => { +router.get('/all', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { data, error } = await supabase.from('users').select('*'); + const { data, error } = await (req as any).supabaseAdmin.from('users').select('*'); if (error) throw new Error(error.message); res.json(data); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } }); // Get user by ID -router.get('/id/:id', async (req, res) => { +router.get('/id/:id', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { data, error } = await supabase + const { data, error } = await (req as any).supabaseAdmin .from('users') .select('*') .eq('id', req.params.id); @@ -27,15 +35,15 @@ router.get('/id/:id', async (req, res) => { if (data.length > 1) return res.status(500).json({ error: 'Multiple users found with the same ID' }); res.json(data[0]); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } }); // Get user by email -router.get('/email/:email', async (req, res) => { +router.get('/email/:email', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { data, error } = await supabase + const { data, error } = await (req as any).supabaseAdmin .from('users') .select('*') .eq('email', req.params.email) @@ -43,29 +51,29 @@ router.get('/email/:email', async (req, res) => { if (error) throw new Error(error.message); if (!data) return res.status(404).json({ error: 'User not found' }); res.json(data); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } }); // Create user -router.post('/', async (req, res) => { +router.post('/', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { data, error } = await supabase + const { data, error } = await (req as any).supabaseAdmin .from('users') .insert([req.body]) .select(); if (error) throw new Error(error.message); res.status(201).json(data[0]); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } }); // Update user -router.put('/:id', async (req, res) => { +router.put('/:id', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { data, error } = await supabase + const { data, error } = await (req as any).supabaseAdmin .from('users') .update(req.body) .eq('id', req.params.id) @@ -73,21 +81,21 @@ router.put('/:id', async (req, res) => { if (error) throw new Error(error.message); if (data.length === 0) return res.status(404).json({ error: 'User not found' }); res.json(data[0]); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } }); // Delete user -router.delete('/:id', async (req, res) => { +router.delete('/:id', serviceRoleMiddleware, async (req: Request, res: Response) => { try { - const { error } = await supabase + const { error } = await (req as any).supabaseAdmin .from('users') .delete() .eq('id', req.params.id); if (error) throw new Error(error.message); res.status(204).send(); - } catch (error: unknown) { + } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : 'An unknown error occurred' }); } });