/* |-------------------------------------------------------------------------- | Routes file |-------------------------------------------------------------------------- | | The routes file is used for defining the HTTP routes. | */ import { middleware } from '#start/kernel' import router from '@adonisjs/core/services/router' import { controllers } from '#generated/controllers' const ReleasesController = () => import('#controllers/releases_controller') const NewznabController = () => import('#controllers/newznab_controller') // Newznab API for Prowlarr / Sonarr / Radarr ("Generic Newznab", API path /api). router.get('/api', [NewznabController, 'handle']) // Web interface: public/index.html is served by the static middleware at "/". router .group(() => { router.get('releases', [ReleasesController, 'index']) router.get('releases/:id', [ReleasesController, 'show']).where('id', router.matchers.number()) router.get('releases/:id/nzb', [ReleasesController, 'nzb']).where('id', router.matchers.number()) router.get('releases/:id/image', [ReleasesController, 'image']).where('id', router.matchers.number()) router.get('stats', [ReleasesController, 'stats']) }) .prefix('/api/v1') router .group(() => { router .group(() => { router.post('signup', [controllers.NewAccount, 'store']) router.post('login', [controllers.AccessTokens, 'store']) }) .prefix('auth') .as('auth') router .group(() => { router.get('profile', [controllers.Profile, 'show']) router.post('logout', [controllers.AccessTokens, 'destroy']) }) .prefix('account') .as('profile') .use(middleware.auth()) }) .prefix('/api/v1')