From 371e628a12b83d711019e7b3038a3593601e8343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Tue, 30 May 2023 18:20:53 +0200
Subject: [PATCH] Add routes management

---
 ExpressAPI/src/express/RoutesManager.ts   |  9 ++++++++
 ExpressAPI/src/routes/ApiRoutesManager.ts | 25 +++++++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 ExpressAPI/src/express/RoutesManager.ts
 create mode 100644 ExpressAPI/src/routes/ApiRoutesManager.ts

diff --git a/ExpressAPI/src/express/RoutesManager.ts b/ExpressAPI/src/express/RoutesManager.ts
new file mode 100644
index 0000000..683f5ac
--- /dev/null
+++ b/ExpressAPI/src/express/RoutesManager.ts
@@ -0,0 +1,9 @@
+import { Express } from 'express-serve-static-core';
+
+
+interface RoutesManager {
+    registerOnBackend(backend: Express): void;
+}
+
+
+export default RoutesManager;
diff --git a/ExpressAPI/src/routes/ApiRoutesManager.ts b/ExpressAPI/src/routes/ApiRoutesManager.ts
new file mode 100644
index 0000000..e8ff6de
--- /dev/null
+++ b/ExpressAPI/src/routes/ApiRoutesManager.ts
@@ -0,0 +1,25 @@
+import { Express }   from 'express-serve-static-core';
+import RoutesManager from '../express/RoutesManager';
+import BaseRoutes    from './BaseRoutes';
+
+
+class AdminRoutesManager implements RoutesManager {
+    private static _instance: AdminRoutesManager;
+
+    private constructor() { }
+
+    public static get instance(): AdminRoutesManager {
+        if ( !AdminRoutesManager._instance ) {
+            AdminRoutesManager._instance = new AdminRoutesManager();
+        }
+
+        return AdminRoutesManager._instance;
+    }
+
+    registerOnBackend(backend: Express) {
+        BaseRoutes.registerOnBackend(backend);
+    }
+}
+
+
+export default AdminRoutesManager.instance;
-- 
GitLab