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
69
70
71
72
73
74
75
76
77
78
79
80
|
// As this is currently a rebuild of the initial API we it is grouped in /v2/
import { middleware } from '#start/kernel';
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');
const WorkspaceController = () =>
import('#controllers/Http/WorkspaceController');
const FeaturesController = () =>
import('#controllers/Http/Api/Static/FeaturesController');
const EmptyController = () =>
import('#controllers/Http/Api/Static/EmptyController');
const AnnouncementsController = () =>
import('#controllers/Http/Api/Static/AnnouncementsController');
router
.group(() => {
// User authentification
router
.post('auth/signup', [UserController, 'signup'])
.use(middleware.guest());
router
.post('auth/login', [UserController, 'login'])
.use(middleware.guest());
// User info
router.get('me', [UserController, 'me']).use(middleware.auth());
router.put('me', [UserController, 'updateMe']).use(middleware.auth());
router
.get('me/newtoken', [UserController, 'newToken'])
.use(middleware.auth());
// // Service info
router
.post('service', [ServiceController, 'create'])
.use(middleware.auth());
router
.put('service/reorder', [ServiceController, 'reorder'])
.use(middleware.auth());
router
.put('service/:id', [ServiceController, 'edit'])
.use(middleware.auth());
router
.delete('service/:id', [ServiceController, 'delete'])
.use(middleware.auth());
router
.get('me/services', [ServiceController, 'list'])
.use(middleware.auth());
router.get('recipe', [ServiceController, 'list']).use(middleware.auth());
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'])
.use(middleware.auth());
router
.delete('workspace/:id', [WorkspaceController, 'delete'])
.use(middleware.auth());
router
.post('workspace', [WorkspaceController, 'create'])
.use(middleware.auth());
router
.get('workspace', [WorkspaceController, 'list'])
.use(middleware.auth());
// Static responses
router.get('features/:mode?', [FeaturesController, 'show']);
router.get('services', [EmptyController, 'show']);
router.get('news', [EmptyController, 'show']);
router.get('announcements/:version', [AnnouncementsController, 'show']);
})
.prefix('/v1');
|