LinDB / app.js
ka1kuk's picture
Update app.js
a761a14
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/:<id>\nInsert (post) : /data\nUpdate (put) : /data:<id>\nDelete (delete) : /data/:<id>\nCreate sheet (post): /sheet/\nGet sheets (get): /data\nDelete sheet (delete) : /data/:<name>');
})
// 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}`);
}
});