From 21acfd6becf33de97d4babe414f2a314b122c741 Mon Sep 17 00:00:00 2001
From: DAVID Axel <axel.david@etu.univ-amu.fr>
Date: Wed, 3 May 2023 04:04:47 +0200
Subject: [PATCH] refactor: :truck: Move CaesarController into the package
 caesar

---
 .../api/v1/controllers/caesar/__init__.py     | 21 +++++++++++++
 .../api/v1/controllers/{ => caesar}/caesar.py | 31 +++++--------------
 .../v1/controllers/{ => caesar}/caesar.pyi    |  0
 .../{docs/caesar.py => caesar/docs.py}        |  0
 4 files changed, 29 insertions(+), 23 deletions(-)
 create mode 100644 src/vigenere_api/api/v1/controllers/caesar/__init__.py
 rename src/vigenere_api/api/v1/controllers/{ => caesar}/caesar.py (84%)
 rename src/vigenere_api/api/v1/controllers/{ => caesar}/caesar.pyi (100%)
 rename src/vigenere_api/api/v1/controllers/{docs/caesar.py => caesar/docs.py} (100%)

diff --git a/src/vigenere_api/api/v1/controllers/caesar/__init__.py b/src/vigenere_api/api/v1/controllers/caesar/__init__.py
new file mode 100644
index 0000000..f582c94
--- /dev/null
+++ b/src/vigenere_api/api/v1/controllers/caesar/__init__.py
@@ -0,0 +1,21 @@
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#  Vigenere-API                                                                        +
+#  Copyright (C) 2023 Axel DAVID                                                       +
+#                                                                                      +
+#  This program is free software: you can redistribute it and/or modify it under       +
+#  the terms of the GNU General Public License as published by the Free Software       +
+#  Foundation, either version 3 of the License, or (at your option) any later version. +
+#                                                                                      +
+#  This program is distributed in the hope that it will be useful, but WITHOUT ANY     +
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR       +
+#  A PARTICULAR PURPOSE. See the GNU General Public License for more details.          +
+#                                                                                      +
+#  You should have received a copy of the GNU General Public License along with        +
+#  this program.  If not, see <https://www.gnu.org/licenses/>.                         +
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+"""CaesarController package."""
+
+from .caesar import CaesarController
+
+__all__ = ["CaesarController"]
diff --git a/src/vigenere_api/api/v1/controllers/caesar.py b/src/vigenere_api/api/v1/controllers/caesar/caesar.py
similarity index 84%
rename from src/vigenere_api/api/v1/controllers/caesar.py
rename to src/vigenere_api/api/v1/controllers/caesar/caesar.py
index ed13adb..eda8491 100644
--- a/src/vigenere_api/api/v1/controllers/caesar.py
+++ b/src/vigenere_api/api/v1/controllers/caesar/caesar.py
@@ -16,22 +16,19 @@
 
 """The caesar controller."""
 
-from typing import final
-
-from blacksheep import FromJSON
-from blacksheep import Response
-from blacksheep.server.controllers import APIController
+from blacksheep import FromJSON, Response
 from blacksheep.server.controllers import post
 
+from vigenere_api.api.utils import Controller
 from vigenere_api.api.v1.openapi_docs import docs
 from vigenere_api.models import CaesarData
-
-from .docs import post_caesar_cipher_docs
-from .docs import post_caesar_decipher_docs
+from .docs import (
+    post_caesar_cipher_docs,
+    post_caesar_decipher_docs,
+)
 
 
-@final
-class CaesarController(APIController):
+class CaesarController(Controller):
     """
     The caesar controller.
 
@@ -50,19 +47,7 @@ class CaesarController(APIController):
         version
             str
         """
-        return "v1"
-
-    @classmethod
-    def class_name(cls) -> str:
-        """
-        Name of the class.
-
-        Returns
-        -------
-        class_name
-            str
-        """
-        return "caesar"
+        return f"v{docs.version.major}"
 
     @docs(post_caesar_cipher_docs)
     @post("cipher")
diff --git a/src/vigenere_api/api/v1/controllers/caesar.pyi b/src/vigenere_api/api/v1/controllers/caesar/caesar.pyi
similarity index 100%
rename from src/vigenere_api/api/v1/controllers/caesar.pyi
rename to src/vigenere_api/api/v1/controllers/caesar/caesar.pyi
diff --git a/src/vigenere_api/api/v1/controllers/docs/caesar.py b/src/vigenere_api/api/v1/controllers/caesar/docs.py
similarity index 100%
rename from src/vigenere_api/api/v1/controllers/docs/caesar.py
rename to src/vigenere_api/api/v1/controllers/caesar/docs.py
-- 
GitLab