diff --git a/index.js b/index.js deleted file mode 100644 index db0017e..0000000 --- a/index.js +++ /dev/null @@ -1,118 +0,0 @@ -const express = require('express'); -const cors = require('cors'); -const path = require('path'); -const db = require('./firebase-config'); -require("serverless-http"); - -const app = express(); - - - -app.use(cors()); -app.use(express.json()); -app.use(express.static('public')); - -// CREATE - Add a new user -app.post('/users', async (req, res) => { - try { - const { name, email } = req.body; - if (!name || !email) { - return res.status(400).json({ error: 'Name and email are required' }); - } - - const docRef = await db.collection('users').add({ name, email }); - res.status(201).json({ id: docRef.id, name, email }); - } catch(err) { - res.status(500).json({ error: err.message }); - } -}); - -// READ - Get all users -app.get('/users', async (req, res) => { - try { - console.log('Attempting to fetch users from Firestore...'); - const snapshot = await db.collection('users').get(); - - if (snapshot.empty) { - console.log('No users found in collection'); - return res.json([]); - } - - const users = []; - snapshot.forEach(doc => { - console.log(`Processing user ${doc.id}`); - users.push({ id: doc.id, ...doc.data() }); - }); - - console.log(`Successfully retrieved ${users.length} users`); - res.json(users); - } catch(err) { - console.error('Detailed Firestore error:', { - message: err.message, - code: err.code, - stack: err.stack - }); - res.status(500).json({ - error: 'Failed to get users', - details: err.message - }); - } -}); - -// READ - Get a single user -app.get('/users/:id', async (req, res) => { - try { - const userRef = db.collection('users').doc(req.params.id); - const doc = await userRef.get(); - - if (!doc.exists) { - return res.status(404).json({ error: 'User not found' }); - } - - res.json({ id: doc.id, ...doc.data() }); - } catch(err) { - res.status(500).json({ error: err.message }); - } -}); - -// UPDATE - Update a user -app.put('/users/:id', async (req, res) => { - try { - const { name, email } = req.body; - if (!name || !email) { - return res.status(400).json({ error: 'Name and email are required' }); - } - - const userRef = db.collection('users').doc(req.params.id); - await userRef.update({ name, email }); - - res.json({ id: req.params.id, name, email }); - } catch(err) { - res.status(500).json({ error: err.message }); - } -}); - -// DELETE - Delete a user -app.delete('/users/:id', async (req, res) => { - try { - const userRef = db.collection('users').doc(req.params.id); - await userRef.delete(); - - res.json({ message: 'User deleted successfully' }); - } catch(err) { - res.status(500).json({ error: err.message }); - } -}); - -// Serve the index.html file -app.get('/', (req, res) => { - res.sendFile(path.join(__dirname, 'public', 'index.html')); -}); - -const PORT = 3000; -app.listen(PORT, () => { - console.log(`✅ Server running at http://localhost:${PORT}`); -}); - -module.exports = app; -moudle.exports.handler = serverless(app);