This repository has been archived on 2023-08-24. You can view files and clone it, but cannot push or open issues or pull requests.
OwlBoard/old-files/http.js

68 lines
1.8 KiB
JavaScript

// OwlBoard - © Fred Boniface 2022
// Licensed under GPLv3 (or later)
// Please see the included LICENSE file
// Version Number:
var version = 0.1
console.log(`Starting OwlBoard version ${version}`)
// Load Modules:
const fs = require('fs');
const ldb = require('ldbs-json');
const http = require('http');
const url = require('url');
// Get API Keys:
try {
var keys = JSON.parse(fs.readFileSync('/srv/keys/owlboard/keys.json', 'utf8'));
console.log('API Keys loaded from /srv/keys/ownboard/keys.json');
} catch (err) {
var keys = 'ERR';
console.error('Unable to obtain API Keys from file');
console.error(err);
};
// Get Settings:
//let settings
try {
var settings = JSON.parse(fs.readFileSync('./settings.json', 'utf8'));
console.log("Settings loaded from .settings.json");
} catch (err) {
console.warn('Unable to load settings, using defaults');
console.log(err);
var settings = {"webPort":8460,"listen":"localhost"};
};
// Create Web Service:
try {
http.createServer((req, res) => {
const queryOpt = url.parse(req.url, true).query;
const query = url.parse(req.url, true).pathname.replace(/[/]/g, '');
switch (req.url){
case "":
res.writeHead(200, { 'Content-Type':'application/json' });
res.end(JSON.stringify({"OwlBoardStatus":"ready","OwnBoardVersion":version}));
break;
}
switch (req.url){
case "/crs":
res.writeHead(200, { 'Content-Type':'application/json'});
res.end(crs);
break;
}
}).listen(settings.webPort);
console.log(`Web server started on http://${settings.listen}:${settings.webPort}`);
} catch (err) {
console.error('Unable to start webserver');
console.error(err);
};
// Check Athena API Key:
// Routes:
var crs = JSON.stringify({"resource":"crs_lookup"});