This commit is contained in:
Thomas Hobson 2021-05-08 12:20:21 +12:00
parent 2beb0abff7
commit 4259e89bb2
No known key found for this signature in database
GPG key ID: 9F1FD9D87950DB6F
11 changed files with 1869 additions and 1857 deletions

View file

@ -14,78 +14,77 @@ const logger = Logger.create('index');
const app = express();
(async () => {
logger.info('Setting loglevel to',config.log_level);
Logger.setLogLevel(config.log_level);
logger.debug('Ensuring data directories exist');
logger.info('Setting loglevel to', config.log_level);
Logger.setLogLevel(config.log_level);
logger.debug('Ensuring data directories exist');
Object.values(globals.data_directories).for_each(dir => {
let data_path = path.join(config.data_directory, dir);
Object.values(globals.data_directories).for_each((dir) => {
let data_path = path.join(config.data_directory, dir);
logger.debug(`Ensuring ${data_path} exists`);
logger.debug(`Ensuring ${data_path} exists`);
if (!fss.exists_sync(data_path)) {
logger.info(`${data_path} does not exist.. Creating..`);
if (!fss.exists_sync(data_path)) {
logger.info(`${data_path} does not exist.. Creating..`);
try {
fss.mkdir_sync(data_path);
} catch(e) {
logger.error(`Failed to create ${data_path}: `, e.message);
}
}
});
try {
fss.mkdir_sync(data_path);
} catch (e) {
logger.error(`Failed to create ${data_path}: `, e.message);
}
}
});
logger.info('Loading packages');
const pkgdir = path.join(config.data_directory,globals.data_directories.packages);
logger.info('Loading packages');
const pkgdir = path.join(
config.data_directory,
globals.data_directories.packages
);
const pkglist = await fs.readdir(pkgdir);
const pkglist = await fs.readdir(pkgdir);
const languages = await Promise.all(
pkglist.map(lang => {
return fs
.readdir(path.join(pkgdir,lang))
.then(x => {
return x.map(y => path.join(pkgdir, lang, y))
});
})
const languages = await Promise.all(
pkglist.map((lang) => {
return fs.readdir(path.join(pkgdir, lang)).then((x) => {
return x.map((y) => path.join(pkgdir, lang, y));
});
})
);
const installed_languages = languages
.flat()
.filter((pkg) =>
fss.exists_sync(path.join(pkg, globals.pkg_installed_file))
);
const installed_languages = languages
.flat()
.filter(pkg => fss.exists_sync(path.join(pkg, globals.pkg_installed_file)));
installed_languages.for_each((pkg) => runtime.load_package(pkg));
installed_languages.for_each(pkg => runtime.load_package(pkg));
logger.info('Starting API Server');
logger.debug('Constructing Express App');
logger.debug('Registering middleware');
logger.info('Starting API Server');
logger.debug('Constructing Express App');
logger.debug('Registering middleware');
app.use(body_parser.urlencoded({ extended: true }));
app.use(body_parser.json());
app.use(body_parser.urlencoded({ extended: true }));
app.use(body_parser.json());
app.use((err, req, res, next) => {
return res
.status(400)
.send({
stack: err.stack
});
app.use((err, req, res, next) => {
return res.status(400).send({
stack: err.stack,
});
});
logger.debug('Registering Routes');
logger.debug('Registering Routes');
const api_v2 = require('./api/v2')
app.use('/api/v2', api_v2);
app.use('/api/v2', api_v2);
const api_v2 = require('./api/v2');
app.use('/api/v2', api_v2);
app.use('/api/v2', api_v2);
app.use((req, res, next) => {
return res
.status(404)
.send({message: 'Not Found'});
});
app.use((req, res, next) => {
return res.status(404).send({ message: 'Not Found' });
});
logger.debug('Calling app.listen');
const [ address, port ] = config.bind_address.split(':');
logger.debug('Calling app.listen');
const [address, port] = config.bind_address.split(':');
app.listen(port, address, () => {
logger.info('API server started on', config.bind_address);
});
app.listen(port, address, () => {
logger.info('API server started on', config.bind_address);
});
})();