/* |-------------------------------------------------------------------------- | Routes file |-------------------------------------------------------------------------- | | The routes file is used for defining the HTTP routes. | */ import router from '@adonisjs/core/services/router' // import transmit from '@adonisjs/transmit/services/main' import { authThrottle } from './limiters.js' import { throttle } from './limiter.js' import { middleware } from './kernel.js' // TODO: Magic link login // transmit.registerRoutes() const AuthController = () => import('#controllers/auth_controller') router.group(() => { router.post('/auth/request', [AuthController, 'requestLogin']).use(authThrottle) router.post('/auth/verify', [AuthController, 'verifyCode']).use(throttle) router.post('/auth/register', [AuthController, 'register']).use(throttle) router.post('/auth/logout', [AuthController, 'logout']) router.get('/auth/autocomplete', [AuthController, 'listNames']).use(throttle) // TODO: Magic link login // router.get('/auth/magic-link', 'AuthController.magicLink').use(throttle) // router.get('/auth/listen', 'AuthController.listen') }) const UserController = () => import('#controllers/user_controller') router.get('/users/@me', [UserController, 'me']).use(middleware.auth()) router.post('/users/@me', [UserController, 'update']).use(middleware.auth()) const SubjectsController = () => import('#controllers/subjects_controller') router.get('/subjects', [SubjectsController, 'index']).use(middleware.auth()) const CollesController = () => import('#controllers/colles_controller') router.group(() => { // TODO: PRIVATE ROUTES router.post('/', [CollesController, 'create']) router.post('/upcoming', [CollesController, 'createUpcoming']) router.post('/:colleId/refresh', [CollesController, 'refresh']).use(middleware.auth()) router.get('/', [CollesController, 'index']).use(middleware.auth()) router.get('/:colleId', [CollesController, 'show']).use(middleware.auth()) } ).prefix('/colles')