|
|
const express = require('express'); |
|
|
const bodyParser = require('body-parser'); |
|
|
const cors = require('cors'); |
|
|
const { findAll, insert, findById, updateById, deleteById, createNewSheet, getSheetNames, deleteSheet } = require('./store'); |
|
|
|
|
|
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>'); |
|
|
}) |
|
|
|
|
|
|
|
|
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 }); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
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 }); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
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 }); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
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 }); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
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 }); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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}`); |
|
|
} |
|
|
|
|
|
}); |