From 57a727ad6648f10c8da29f8ca9dae476d364ed7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Victor=20L=C3=B6fgren?= <victor.l0fgr3n@gmail.com>
Date: Thu, 8 Apr 2021 11:55:49 +0200
Subject: [PATCH] Add question post api call

---
 server/app/apis/questions.py | 20 +++++++++++++++++++-
 server/app/core/parsers.py   |  8 ++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/server/app/apis/questions.py b/server/app/apis/questions.py
index b1847b2e..1398be86 100644
--- a/server/app/apis/questions.py
+++ b/server/app/apis/questions.py
@@ -3,7 +3,7 @@ import app.core.http_codes as codes
 from app.apis import admin_required, item_response, list_response
 from app.core.dto import QuestionDTO
 from app.core.models import Question
-from app.core.parsers import user_parser, user_search_parser
+from app.core.parsers import question_parser
 from flask_jwt_extended import get_jwt_identity, jwt_required
 from flask_restx import Namespace, Resource
 
@@ -40,6 +40,24 @@ list_schema = QuestionDTO.list_schema
 #         return item_response(schema.dump(item))
 
 
+@api.route("/")
+@api.param("CID")
+class CompetitionsList(Resource):
+    @jwt_required
+    def post(self, CID):
+        args = question_parser.parse_args(strict=True)
+
+        name = args.get("name")
+        # total_score = args.get("total_score")
+        slide_id = args.get("slide_id")
+        type_id = args.get("type_id")
+
+        item_slide = dbc.get.slide(CID, slide_id)
+        item = dbc.add.question(name, item_slide.order, type_id, item_slide)
+
+        return item_response(schema.dump(item))
+
+
 @api.route("/<QID>")
 @api.param("CID,QID")
 class Questions(Resource):
diff --git a/server/app/core/parsers.py b/server/app/core/parsers.py
index d4aaf0ec..16490390 100644
--- a/server/app/core/parsers.py
+++ b/server/app/core/parsers.py
@@ -52,3 +52,11 @@ slide_parser = reqparse.RequestParser()
 slide_parser.add_argument("order", type=int, default=None)
 slide_parser.add_argument("title", type=str, default=None)
 slide_parser.add_argument("timer", type=int, default=None)
+
+
+###QUESTION####
+question_parser = reqparse.RequestParser()
+question_parser.add_argument("name", type=str)
+# question_parser.add_argument("total_score", type=int)
+question_parser.add_argument("slide_id", type=int)
+question_parser.add_argument("type_id", type=int)
-- 
GitLab