const router = require('express').Router(); const authMiddleware = require('./middleware/auth-middleware'); router.get('/cards-data', (request, response) => { response.send(require('./json/cards-data/success.json')) }) router.get('/messages', (request, response) => { response.send(require('./json/messages/success.json')) }) router.get('/user', authMiddleware, (request, response) => { const email = request.userEmail; try { const usersData = require('./json/users-data/success.json'); const userData = usersData.data.find(user => user.email === email); if (userData) { return response.json(userData.favourites); } response.status(404).send('User not found'); } catch (error) { console.error('Error reading file:', error); response.status(500).send('Internal server error'); } }) router.get('/cards-data/:id', (request, response) => { const cardId = request.params.id; try { const cardsData = require('./json/cards-data/success.json'); const cardData = cardsData.data.find(card => card.id === cardId); if (cardData) { return response.json(cardData); } response.status(404).send('Card not found'); } catch (error) { console.error('Error reading file:', error); response.status(500).send('Internal server error'); } }) router.get('/messages/:id', (request, response) => { const cardId = request.params.id; try { const cardsData = require('./json/messages/success.json'); const cardData = cardsData.data.find(card => card.id === cardId); if (cardData) { return response.json(cardData); } response.status(404).send('Card not found'); } catch (error) { console.error('Error reading file:', error); response.status(500).send('Internal server error'); } }) router.post('/login', (request, response) => { const { email, password } = request.body.loginData; try { const users = require('./json/users-data/success.json'); const user = users.data.find(user => user.email === email && user.password === password); if (!user) { return response.status(401).send('Invalid credentials'); } const responseObject = { email: user.email, } if (user.cardId){ responseObject.cardId = user.cardId || ""; } return response.json(responseObject); } catch (error) { console.error('Error reading file:', error); response.status(500).send('Internal server error'); } }) router.post('/register', async (request, response) => { const { _name, email, password, confirmPassword } = request.body.registerData; try { if (password !== confirmPassword) { return response.status(400).send('Passwords do not match'); } const users = require('./json/users-data/success.json'); const existingUser = users.data.find(user => user.email === email); if (existingUser) { return response.status(400).send('User with this email already exists'); } return response.json({ email: email}); } catch (error) { console.error('Error registering user:', error); response.status(500).send('Internal server error'); } }); router.post('/favourite', async (request, response) => { const { cardId, email } = request.body; try { const users = require('./json/users-data/success.json'); const user = users.data.find(user => user.email === email); if (!user) { return response.status(404).send('User not found'); } const index = user.favourites.indexOf(cardId); if (index !== -1) { return response.status(200).send('Card removed from favourites successfully'); } response.status(200).send('Card added to favourites successfully'); } catch (error) { console.error('Error adding card to favourites:', error); response.status(500).send('Internal server error'); } }); module.exports = router;