diff --git a/server.js b/server.js index a1bdf71..ad7e6a1 100644 --- a/server.js +++ b/server.js @@ -2,38 +2,55 @@ const path = require('path') const fastify = require('fastify')({ - logger: { - prettyPrint: true - } + logger: { + prettyPrint: true + } }) const port = process.env.PORT || 3000 fastify.register(require('point-of-view'), { - engine: { - handlebars: require('handlebars') - } + engine: { + handlebars: require('handlebars') + } }) fastify.register(require('fastify-static'), { - root: path.join(__dirname, 'public'), - prefix: '/public/' + root: path.join(__dirname, 'public'), + prefix: '/public/' }) -// Challenge: NO SCHEMA???? -// Please add a schema to validate the following properties from query string: -// - name -// - course (required) -fastify.get('/', (request, reply) => { - const name = request.query.name || 'Anonymous' - const course = request.query.course - reply.view('/templates/index.hbs', { name, course }) +const queryschema = { + schema: { + querystring: { + type: 'object', + properties: { + name: { + type: 'string' + }, + course: { + type: 'string' + } + }, + required: ['course'] + } + } +} + + +fastify.get('/', queryschema, (request, reply) => { + + const name = request.query.name || 'Anonymous' + const course = request.query.course || 'course' + reply.view('/templates/index.hbs', { name, course }) + }) -async function start () { - await fastify.listen(port) + +async function start() { + await fastify.listen(port) } start().catch(err => { - fastify.log.error(err) - process.exit(1) + fastify.log.error(err) + process.exit(1) }) \ No newline at end of file