aboutsummaryrefslogtreecommitdiffstats
path: root/start/routes/api.ts
blob: 78282f041c781ac411d9cd24264d3900bb560eb8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// As this is currently a rebuild of the initial API we it is grouped in /v2/

import Route from '@ioc:Adonis/Core/Route';

Route.group(() => {
  // User authentification
  Route.post('auth/signup', 'UserController.signup').middleware('guest');
  Route.post('auth/login', 'UserController.login').middleware('guest');

  // User info
  Route.get('me', 'UserController.me').middleware('auth:jwt');
  Route.put('me', 'UserController.updateMe').middleware('auth:jwt');
  Route.get('me/newtoken', 'UserController.newToken').middleware('auth:jwt');

  // // Service info
  Route.post('service', 'ServiceController.create').middleware('auth:jwt');
  Route.put('service/reorder', 'ServiceController.reorder').middleware(
    'auth:jwt',
  );
  Route.put('service/:id', 'ServiceController.edit').middleware('auth:jwt');
  Route.delete('service/:id', 'ServiceController.delete').middleware(
    'auth:jwt',
  );
  Route.get('me/services', 'ServiceController.list').middleware('auth:jwt');
  Route.get('recipe', 'ServiceController.list').middleware('auth:jwt');
  Route.get('icon/:id', 'ServiceController.icon');

  // Recipe store
  Route.get('recipes', 'RecipeController.list');
  Route.get('recipes/search', 'RecipeController.search');
  Route.get('recipes/popular', 'RecipeController.popularRecipes');
  Route.get('recipes/download/:recipe', 'RecipeController.download');
  Route.post('recipes/update', 'RecipeController.update');

  // // Workspaces
  Route.put('workspace/:id', 'WorkspaceController.edit').middleware('auth:jwt');
  Route.delete('workspace/:id', 'WorkspaceController.delete').middleware(
    'auth:jwt',
  );
  Route.post('workspace', 'WorkspaceController.create').middleware('auth:jwt');
  Route.get('workspace', 'WorkspaceController.list').middleware('auth:jwt');

  // Static responses
  Route.get('features/:mode?', 'Api/Static/FeaturesController.show');
  Route.get('services', 'Api/Static/EmptyController.show');
  Route.get('news', 'Api/Static/EmptyController.show');
  Route.get(
    'announcements/:version',
    'Api/Static/AnnouncementsController.show',
  );
}).prefix('/v1');