aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/start/routes.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/start/routes.js')
-rw-r--r--src/server/start/routes.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/server/start/routes.js b/src/server/start/routes.js
deleted file mode 100644
index 333a5ba06..000000000
--- a/src/server/start/routes.js
+++ /dev/null
@@ -1,74 +0,0 @@
1
2/*
3|--------------------------------------------------------------------------
4| Routes
5|--------------------------------------------------------------------------
6|
7*/
8
9/** @type {typeof import('@adonisjs/framework/src/Route/Manager')} */
10const Route = use('Route');
11
12const OnlyAllowFerdi = async ({ request, response }, next) => {
13 const user = request.header('User-Agent');
14 if (!/Ferdi\/\d(\.\d){2}/g.test(user)) {
15 return response.status(403).redirect('/');
16 }
17
18 await next();
19 return true;
20};
21
22// Health: Returning if all systems function correctly
23Route.get('health', ({
24 response,
25}) => response.send({
26 api: 'success',
27 db: 'success',
28})).middleware(OnlyAllowFerdi);
29
30// API is grouped under '/v1/' route
31Route.group(() => {
32 // User authentification
33 Route.post('auth/signup', 'UserController.signup');
34 Route.post('auth/login', 'UserController.login');
35
36 // User info
37 Route.get('me', 'UserController.me');
38
39 // Service info
40 Route.post('service', 'ServiceController.create');
41 Route.put('service/:id', 'ServiceController.edit');
42 Route.delete('service/:id', 'ServiceController.delete');
43 Route.get('me/services', 'ServiceController.list');
44 Route.put('service/reorder', 'ServiceController.reorder');
45 Route.get('recipe', 'ServiceController.list');
46 Route.post('recipes/update', 'ServiceController.update');
47
48 // Recipe store
49 Route.get('recipes', 'RecipeController.list');
50 Route.get('recipes/download/:recipe', 'RecipeController.download');
51 Route.get('recipes/search', 'RecipeController.search');
52 Route.get('recipes/popular', 'StaticController.popularRecipes');
53 Route.get('recipes/update', 'StaticController.emptyArray');
54
55 // Workspaces
56 Route.put('workspace/:id', 'WorkspaceController.edit');
57 Route.delete('workspace/:id', 'WorkspaceController.delete');
58 Route.post('workspace', 'WorkspaceController.create');
59 Route.get('workspace', 'WorkspaceController.list');
60
61 // Static responses
62 Route.get('features', 'StaticController.features');
63 Route.get('services', 'StaticController.emptyArray');
64 Route.get('news', 'StaticController.emptyArray');
65 Route.get('payment/plans', 'StaticController.plans');
66 Route.get('announcements/:version', 'StaticController.announcement');
67}).prefix('v1').middleware(OnlyAllowFerdi);
68
69// Franz account import
70Route.post('import', 'UserController.import');
71Route.get('import', ({ view }) => view.render('import'));
72
73// Index
74Route.get('/', ({ view }) => view.render('index'));