const fastify = require('fastify')();//{ logger: true });
const path = require('path');

const csass = require("./compile_sass").compileSassMain();

fastify.register(require('@fastify/static'), {
  root: path.join(__dirname, 'public'),
  prefix: '/public/',
});

fastify.register(require('@fastify/leveldb'), {
  name: 'db'
}, err => {
	if (err) throw err
});



fastify.get('/', (req, reply) => reply.sendFile('/template/home.html'));
fastify.register(require('./router/api'), { prefix: '/api' });

fastify.get('/:id', (req, reply) => {
	try{
		const ec = parseInt(req.params.id);
		switch(ec){
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
				reply.code(ec).send("Client Error");
				break;
			case 500:
				reply.code(ec).send("Internal Error");
				break;
			default:
				throw undefined;
		}
	}catch(e){
		reply.sendFile('/template/journey.html');
	}
});
fastify.get('/view/:id', (req, reply) => reply.sendFile('/template/journey.html'));
fastify.get('/short/:id', (req, reply) => reply.sendFile('/template/journey.html'));




fastify.listen({port:8080,host:'0.0.0.0'} ,(err,address) => {
	if (err) throw err;
	console.log("Listening on", address);

});