require('dotenv').config(); const debug = require('debug')('soundbirder:api'); const debugLocale = require('debug')('soundbirder:locale'); const debugResponses = require('debug')('soundbirder:api:responses'); const quizzController = require('./quizz'); const QUIZZ_SIZE = process.env.QUIZZ_SIZE ? process.env.QUIZZ_SIZE : 5; function getHome(req, res) { res.render('api', { title: "SoundBirder api", version: 0 }); } function quizz(req, res) { debug('Generating quizz'); const { lat, lng } = req.query; debug(`Coordinates: ${lat}, ${lng}`); const locale = req.i18n.locale; debugLocale("Locale:", locale); quizzController.generateQuizz({ lat, lng }, locale, QUIZZ_SIZE) .then(({ species, answer, audio }) => { req.session.answer = answer; res.json({ species, audio }); debug("Quizz sent"); }) .catch(error => { debug("Faced error while generating quizz"); res.json({ error }); throw error; }); } function check(req, res) { let answer, correct; try { answer = req.query.species; correct = req.session.answer; } catch (error) { console.error(error); } let result = {}; try { if (correct === undefined) { console.error("No answer found in session"); } else if (answer === correct.speciesCode) { debug("Correct answer"); result = { correct: true, message: req.i18n.__('Correct!'), answer: correct }; } else { debug("Wrong answer"); result = { correct: false, message: req.i18n.__('Wrong!'), answer: correct }; } } catch (error) { console.error(error); } res.json(result); } const game = { check, quizz } module.exports = { getHome, game }