diff --git a/config.js b/config.js new file mode 100644 index 0000000..58da150 --- /dev/null +++ b/config.js @@ -0,0 +1,4 @@ +var settings = require('./settings.js') +module.exports = { + settings +} \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..9408f74 --- /dev/null +++ b/index.js @@ -0,0 +1,84 @@ +const client; +client.config = require('./config.js').settings; + +const MapDB = require('quickmap.db'); +const db = new MapDB('database.json'); + +var fs = require('fs'); +var data = fs.readFileSync('./data/database.json'); + +var elements = JSON.parse(data); +const express = require("express"); +const app = express(); + +const cors=require('cors'); + +app.listen(client.config.port, + () => console.log("Server Start at the port "+client.config.port)); + +app.use(express.static('public')); +app.use(cors()); + +async function authenticate(token) { + if (!client.config.auth.includes(token)) { + return; + } +} + +// All dates in the database + +app.get('/api/:auth/database', alldata); + +function alldata(request, response) { + var token = request.params.auth; + authenticate(token) + response.send(elements); +} + +// One element in the database + +app.get('/api/:auth/database/:element/', searchElement); + +function searchElement(request, response) { + var token = request.params.auth; + authenticate(token) + + var word = request.params.element; + + var elements = await db.get(word) + + if(elements[word]) { + var reply = elements[word]; + } + else { + var reply = { + status:"Not Found" + } + } + + response.send(reply); +} + +// Set a db variable + +app.get('/api/:auth/database/:element/set/:data', set); + +async function set(request, response) { + var token = request.params.auth; + authenticate(token) + + var element = request.params.element; + var data = request.params.data; + await db.set(element, data) + const res = await db.get(element) + if(res) { + var reply = res; + } + else { + var reply = { + status:"Not Found" + } + } + + response.send(reply); +} \ No newline at end of file diff --git a/settings.js b/settings.js new file mode 100644 index 0000000..4b80087 --- /dev/null +++ b/settings.js @@ -0,0 +1,4 @@ +module.exports = { + port: '15000', //database port + auth: ['abaco2022'] +} \ No newline at end of file