diff options
Diffstat (limited to 'start/routes')
-rw-r--r-- | start/routes/api.ts | 51 | ||||
-rw-r--r-- | start/routes/web.ts | 54 |
2 files changed, 105 insertions, 0 deletions
diff --git a/start/routes/api.ts b/start/routes/api.ts new file mode 100644 index 0000000..78282f0 --- /dev/null +++ b/start/routes/api.ts | |||
@@ -0,0 +1,51 @@ | |||
1 | // As this is currently a rebuild of the initial API we it is grouped in /v2/ | ||
2 | |||
3 | import Route from '@ioc:Adonis/Core/Route'; | ||
4 | |||
5 | Route.group(() => { | ||
6 | // User authentification | ||
7 | Route.post('auth/signup', 'UserController.signup').middleware('guest'); | ||
8 | Route.post('auth/login', 'UserController.login').middleware('guest'); | ||
9 | |||
10 | // User info | ||
11 | Route.get('me', 'UserController.me').middleware('auth:jwt'); | ||
12 | Route.put('me', 'UserController.updateMe').middleware('auth:jwt'); | ||
13 | Route.get('me/newtoken', 'UserController.newToken').middleware('auth:jwt'); | ||
14 | |||
15 | // // Service info | ||
16 | Route.post('service', 'ServiceController.create').middleware('auth:jwt'); | ||
17 | Route.put('service/reorder', 'ServiceController.reorder').middleware( | ||
18 | 'auth:jwt', | ||
19 | ); | ||
20 | Route.put('service/:id', 'ServiceController.edit').middleware('auth:jwt'); | ||
21 | Route.delete('service/:id', 'ServiceController.delete').middleware( | ||
22 | 'auth:jwt', | ||
23 | ); | ||
24 | Route.get('me/services', 'ServiceController.list').middleware('auth:jwt'); | ||
25 | Route.get('recipe', 'ServiceController.list').middleware('auth:jwt'); | ||
26 | Route.get('icon/:id', 'ServiceController.icon'); | ||
27 | |||
28 | // Recipe store | ||
29 | Route.get('recipes', 'RecipeController.list'); | ||
30 | Route.get('recipes/search', 'RecipeController.search'); | ||
31 | Route.get('recipes/popular', 'RecipeController.popularRecipes'); | ||
32 | Route.get('recipes/download/:recipe', 'RecipeController.download'); | ||
33 | Route.post('recipes/update', 'RecipeController.update'); | ||
34 | |||
35 | // // Workspaces | ||
36 | Route.put('workspace/:id', 'WorkspaceController.edit').middleware('auth:jwt'); | ||
37 | Route.delete('workspace/:id', 'WorkspaceController.delete').middleware( | ||
38 | 'auth:jwt', | ||
39 | ); | ||
40 | Route.post('workspace', 'WorkspaceController.create').middleware('auth:jwt'); | ||
41 | Route.get('workspace', 'WorkspaceController.list').middleware('auth:jwt'); | ||
42 | |||
43 | // Static responses | ||
44 | Route.get('features/:mode?', 'Api/Static/FeaturesController.show'); | ||
45 | Route.get('services', 'Api/Static/EmptyController.show'); | ||
46 | Route.get('news', 'Api/Static/EmptyController.show'); | ||
47 | Route.get( | ||
48 | 'announcements/:version', | ||
49 | 'Api/Static/AnnouncementsController.show', | ||
50 | ); | ||
51 | }).prefix('/v1'); | ||
diff --git a/start/routes/web.ts b/start/routes/web.ts new file mode 100644 index 0000000..308abec --- /dev/null +++ b/start/routes/web.ts | |||
@@ -0,0 +1,54 @@ | |||
1 | import Route from '@ioc:Adonis/Core/Route'; | ||
2 | |||
3 | // Health check | ||
4 | Route.get('health', 'HealthController.index'); | ||
5 | |||
6 | // Legal documents | ||
7 | Route.get('terms', ({ response }) => response.redirect('/terms.html')); | ||
8 | Route.get('privacy', ({ response }) => response.redirect('/privacy.html')); | ||
9 | |||
10 | // Index | ||
11 | Route.get('/', ({ view }) => view.render('others/index')); | ||
12 | |||
13 | Route.group(() => { | ||
14 | Route.group(() => { | ||
15 | // Guest troutes | ||
16 | Route.group(() => { | ||
17 | Route.get('login', 'Dashboard/LoginController.show'); | ||
18 | Route.post('login', 'Dashboard/LoginController.login').as('login'); | ||
19 | |||
20 | // Reset password | ||
21 | Route.get('forgot', 'Dashboard/ForgotPasswordController.show'); | ||
22 | Route.post('forgot', 'Dashboard/ForgotPasswordController.forgotPassword'); | ||
23 | |||
24 | Route.get('reset', 'Dashboard/ResetPasswordController.show'); | ||
25 | Route.post('reset', 'Dashboard/ResetPasswordController.resetPassword'); | ||
26 | }).middleware(['dashboard', 'guest']); | ||
27 | |||
28 | // Authenticated routes | ||
29 | Route.group(() => { | ||
30 | Route.get('account', 'Dashboard/AccountController.show'); | ||
31 | Route.post('account', 'Dashboard/AccountController.store'); | ||
32 | |||
33 | Route.get('data', 'Dashboard/DataController.show'); | ||
34 | Route.get('export', 'Dashboard/ExportController.show'); | ||
35 | |||
36 | Route.get('transfer', 'Dashboard/TransferController.show'); | ||
37 | Route.post('transfer', 'Dashboard/TransferController.import'); | ||
38 | |||
39 | Route.get('delete', 'Dashboard/DeleteController.show'); | ||
40 | Route.post('delete', 'Dashboard/DeleteController.delete'); | ||
41 | |||
42 | Route.get('logout', 'Dashboard/LogOutController.logout'); | ||
43 | |||
44 | Route.get('*', ({ response }) => response.redirect('/user/account')); | ||
45 | }).middleware(['dashboard', 'auth:web']); | ||
46 | }).prefix('user'); | ||
47 | |||
48 | // Franz/Ferdi account import | ||
49 | Route.get('import', ({ view }) => view.render('others/import')); | ||
50 | Route.post('import', 'UserController.import'); | ||
51 | |||
52 | // 404 handler | ||
53 | Route.get('/*', ({ response }) => response.redirect('/')); | ||
54 | }).middleware(['dashboard']); | ||