summaryrefslogtreecommitdiff
path: root/routes/set
diff options
context:
space:
mode:
Diffstat (limited to 'routes/set')
-rw-r--r--routes/set/nick.py28
-rw-r--r--routes/set/question.py40
-rw-r--r--routes/set/quiz.py13
3 files changed, 81 insertions, 0 deletions
diff --git a/routes/set/nick.py b/routes/set/nick.py
new file mode 100644
index 0000000..67ddeea
--- /dev/null
+++ b/routes/set/nick.py
@@ -0,0 +1,28 @@
+from app import app
+from flask import render_template, session, request, redirect
+import db_actions as D
+
+
+@app.route("/set/nick",methods=["POST"])
+def new_nick():
+ nick = request.form["nick"]
+ if "id" in session.keys():
+ msg = "You already have a nick."
+ elif D.user_exists(nick):
+ msg = "Nick is already reserved."
+ elif msg := invalid_nick(nick):
+ pass
+ else:
+ session["id"] = D.user_new(nick)
+ return redirect("/")
+ session["alert"]="Nick in not created: "+msg
+ return redirect("/#nick")
+
+
+def invalid_nick(nick):
+ if len(nick)<4:
+ return "Nick is too short"
+ if not nick.isalnum():
+ return "Only letters and numbers are allowed"
+ return 0
+ \ No newline at end of file
diff --git a/routes/set/question.py b/routes/set/question.py
new file mode 100644
index 0000000..deaf9be
--- /dev/null
+++ b/routes/set/question.py
@@ -0,0 +1,40 @@
+from app import app
+from flask import render_template, session, request, redirect
+import db_actions as D
+
+
+def validate_answer(ans):
+ if len(ans)<1:
+ return False
+ return True
+
+def validate_question(question):
+ if len(question)<2:
+ return False
+ return True
+
+@app.route("/set/question",methods=["POST"])
+def new_question():
+ question = request.form["question"]
+ neg_ans = request.form["neg_ans"]
+ pos_ans = request.form["pos_ans"]
+ answer = request.form["answer"]
+ if not validate_question(question):
+ msg = "Kysymys on virheellinen"
+ elif not validate_answer(neg_ans):
+ msg = "Vasen selite on virheellinen"
+ elif not validate_answer(pos_ans):
+ msg = "Oikea selite on virheellinen"
+ elif "id" not in session.keys():
+ msg = "Tarvitaan nimimerkki"
+ elif "quiz_id" not in session.keys():
+ msg = "Ei voi lisätä kysymystä ilman kyselmää"
+ else:
+ quiz_id = session["quiz_id"]
+ user_id = session["id"]
+ question_id = D.question_new( question, neg_ans, pos_ans )
+ D.quiz_add(quiz_id, question_id)
+ D.answer_new(user_id, question_id, answer)
+ return redirect("/#create")
+ session["alert"]="Kysymystä ei luotu: "+msg
+ return redirect("/#create")
diff --git a/routes/set/quiz.py b/routes/set/quiz.py
new file mode 100644
index 0000000..9ad13da
--- /dev/null
+++ b/routes/set/quiz.py
@@ -0,0 +1,13 @@
+from app import app
+from flask import render_template, session, request, redirect
+import db_actions as D
+
+
+@app.route("/set/quiz",methods=["POST"])
+def new_quiz():
+ if not "id" in session.keys():
+ session["alert"]="Tarvitset nimimerkin loudaksesi"
+ return redirect("/#nick")
+ user_id = session["id"]
+ session["quiz_id"] = D.quiz_new( user_id )
+ return redirect("/#create")