aboutsummaryrefslogtreecommitdiffstats
path: root/start/routes/api.ts
blob: 77c304649c84d4ccae8ed6a511c734c3e3753b34 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// As this is currently a rebuild of the initial API we it is grouped in /v2/

import router from '@adonisjs/core/services/router';
const UserController = () => import('#controllers/Http/UserController');
const ServiceController = () => import('#controllers/Http/ServiceController');
const RecipeController = () => import('#controllers/Http/RecipeController');

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

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

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

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

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

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