File size: 3,475 Bytes
75e9048
176b3b2
75e9048
176b3b2
6927998
 
a761a14
 
6927998
176b3b2
 
6927998
a761a14
 
 
 
 
176b3b2
 
6927998
176b3b2
 
6927998
176b3b2
6927998
 
 
176b3b2
 
6927998
176b3b2
 
 
 
 
6927998
 
176b3b2
6927998
 
 
176b3b2
 
6927998
176b3b2
 
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
 
6927998
176b3b2
 
 
 
 
 
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
 
6927998
176b3b2
 
 
 
 
 
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
 
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
 
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
6927998
176b3b2
 
6927998
176b3b2
6927998
176b3b2
6927998
 
e6dc26c
176b3b2
a761a14
 
 
 
 
 
 
176b3b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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}`);
  }

});