diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..37441be --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "files.eol": "\n" +} \ No newline at end of file diff --git a/core/models/question.js b/core/models/question.js index 7e8ae83..cd1ca2a 100644 --- a/core/models/question.js +++ b/core/models/question.js @@ -5,10 +5,6 @@ const Database = require('sqlite-async') const dbName = 'server.db' module.exports = class Question { - example() { - return 'this is an example' - } - async getAllQuestions(query) { try { let sql = 'SELECT id, title, question FROM Questions;' @@ -27,5 +23,15 @@ module.exports = class Question { } } - + async insertQuestion(request) { + console.log(request.body) + const body = request.body + const sql = `INSERT INTO Questions(title, question) + VALUES("${body.title}", "${body.question}");` + console.log(sql) + const db = await Database.open(dbName) + await db.run(sql) + await db.close() + } + } diff --git a/core/routes.js b/core/routes.js index cf25969..e69de29 100644 --- a/core/routes.js +++ b/core/routes.js @@ -1,44 +0,0 @@ -'use strict' - -const Router = require('koa-router') -const Question = require('./models/question') - -//temp -const Database = require('sqlite-async') -const handlebars = require('koa-hbs-renderer') -const dbName = 'server.db' -// - -const router = new Router() -const question = new Question() - -/* -router.get('/', async ctx => await ctx.render('home', {title: 'Home'})) -*/ - -//temp -router.get('/', async ctx => { - const data = await question.getAllQuestions(ctx.query) - console.log(data) - await ctx.render('home', {Questions: data,title: 'Home'}) -}) - -router.post('/insertquestion', async ctx => { - try { - console.log(ctx.request.body) - const body = ctx.request.body - const sql = `INSERT INTO Questions(title, question) - VALUES("${body.title}", "${body.question}");` - console.log(sql) - const db = await Database.open(dbName) - await db.run(sql) - await db.close() - ctx.redirect('/') - } catch(err) { - ctx.body = err.message - } -}) - -router.get('/createquestion', async ctx => ctx.render('createquestion')) - -module.exports = router diff --git a/core/routes/questionRoutes.js b/core/routes/questionRoutes.js new file mode 100644 index 0000000..290d49c --- /dev/null +++ b/core/routes/questionRoutes.js @@ -0,0 +1,31 @@ +'use strict' + +const Router = require('koa-router') +const Question = require('../models/question') + +const router = new Router() +const question = new Question() + + +router.get('/', async ctx => { + try{ + const data = await question.getAllQuestions(ctx.query) + console.log(data) + await ctx.render('home', {Questions: data,title: 'Home'}) + }catch(err) { + await ctx.render('error', {message: err.message}) + } +}) + +router.post('/insertquestion', async ctx => { + try{ + await question.insertQuestion(ctx.request) + ctx.redirect('/') + }catch(err) { + await ctx.render('error', {message: err.message}) + } +}) + +router.get('/createquestion', async ctx => ctx.render('createquestion')) + +module.exports = router diff --git a/core/views/error.hbs b/core/views/error.hbs new file mode 100644 index 0000000..ca1e11b --- /dev/null +++ b/core/views/error.hbs @@ -0,0 +1,12 @@ + + + +
+ +