const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const { findAll, insert, findById, updateById, deleteById, createNewSheet, getSheetNames, deleteSheet } = require('./store');// assuming your Google Sheets script is named js const app = express(); const PORT = 7860; const HOST = '0.0.0.0'; app.use(bodyParser.json()); app.use(cors()) app.get('/', (req, res) => { res.setHeader('Content-Type', 'text/plain'); res.end('This is LinDB \n\nSearch all (get) : /data\nSearch by id (get) : /data/:\nInsert (post) : /data\nUpdate (put) : /data:\nDelete (delete) : /data/:\nCreate sheet (post): /sheet/\nGet sheets (get): /data\nDelete sheet (delete) : /data/:'); }) // Get all data app.get('/data', async (req, res) => { try { const data = await findAll(); res.status(200).json(data); } catch (error) { res.status(500).json({ message: 'Error retrieving data', error }); } }); // Get data by ID app.get('/data/:id', async (req, res) => { try { const data = await findById(req.params.id); if (data) { res.status(200).json(data); } else { res.status(404).json({ message: 'Data not found' }); } } catch (error) { res.status(500).json({ message: 'Error retrieving data', error }); } }); // Insert new data app.post('/data', async (req, res) => { try { const insertedData = await insert(req.body); res.status(201).json(insertedData); } catch (error) { res.status(500).json({ message: 'Error inserting data', error }); } }); // Update data by ID app.put('/data/:id', async (req, res) => { try { const updatedData = await updateById(req.params.id, req.body); if (updatedData) { res.status(200).json(updatedData); } else { res.status(404).json({ message: 'Data not found' }); } } catch (error) { res.status(500).json({ message: 'Error updating data', error }); } }); // Delete data by ID app.delete('/data/:id', async (req, res) => { try { const deleted = await deleteById(req.params.id); if (deleted) { res.status(204).send(); } else { res.status(404).json({ message: 'Data not found' }); } } catch (error) { res.status(500).json({ message: 'Error deleting data', error }); } }); app.post('/sheet', async (req, res) => { try { const result = await createNewSheet(req.body.title); res.status(201).send(result); } catch (error) { res.status(500).json({ message: 'Error creating sheet', error }); } }); app.get('/sheets', async (req, res) => { try { const sheetNames = await getSheetNames(); res.status(200).json(sheetNames); } catch (error) { res.status(500).json({ message: 'Error retrieving sheet names', error: error.message }); } }); app.delete('/sheet/:name', async (req, res) => { try { const result = await deleteSheet(req.params.name); res.status(200).send(result); } catch (error) { res.status(500).json({ message: 'Error deleting sheet', error: error.message }); } }); // Start the server app.listen(PORT, HOST, () => { if (HOST == '0.0.0.0') { console.log(`Running on http://127.0.0.1:${PORT}`); } else { console.log(`Running on http://${HOST}:${PORT}`); } });