From 8e371b1b48f13a94ea593c2a1b729376c5875318 Mon Sep 17 00:00:00 2001
From: Josef Olsson <josol381@student.liu.se>
Date: Wed, 21 Apr 2021 10:00:56 +0200
Subject: [PATCH] Add copy slide api and test

---
 server/app/apis/slides.py | 12 ++++++++++++
 server/tests/test_app.py  |  5 +++++
 2 files changed, 17 insertions(+)

diff --git a/server/app/apis/slides.py b/server/app/apis/slides.py
index 02d0d3d6..3d9ce6fe 100644
--- a/server/app/apis/slides.py
+++ b/server/app/apis/slides.py
@@ -83,3 +83,15 @@ class SlidesOrder(Resource):
         item_slide = dbc.edit.switch_order(item_slide, item_slide_order)
 
         return item_response(schema.dump(item_slide))
+
+
+@api.route("/<SOrder>/copy")
+@api.param("CID,SOrder")
+class SlidesOrder(Resource):
+    @check_jwt(editor=True)
+    def put(self, CID, SOrder):
+        item_slide = dbc.get.slide(CID, SOrder)
+
+        item_slide_copy = dbc.copy.slide(item_slide)
+
+        return item_response(schema.dump(item_slide_copy))
diff --git a/server/tests/test_app.py b/server/tests/test_app.py
index 467fd059..aa1758f9 100644
--- a/server/tests/test_app.py
+++ b/server/tests/test_app.py
@@ -301,6 +301,11 @@ def test_slide_api(client):
     # Changes the order
     change_order_test(client, CID, slide_order, slide_order + 1, headers)
 
+    # Copies slide
+    for _ in range(10):
+        response, _ = put(client, f"/api/competitions/{CID}/slides/{slide_order}/copy", headers=headers)
+        assert response.status_code == codes.OK
+
 
 def test_question_api(client):
     add_default_values()
-- 
GitLab