From 7332d7a0c9c93cbf92ba9a27d5ab68a584ad7672 Mon Sep 17 00:00:00 2001 From: Sergey Yarkov Date: Sun, 6 Mar 2022 22:54:42 +0300 Subject: [PATCH] refactor: refactored routes import --- .adonisrc.json | 11 +-- routes/api.ts | 11 --- routes/apis/v1/index.ts | 79 ------------------- routes/index.ts | 34 -------- start/routes.ts | 17 ++++ {routes => start/routes}/apis/v1/auth.ts | 2 +- .../routes}/apis/v1/categories.ts | 4 +- {routes => start/routes}/apis/v1/chat.ts | 4 +- {routes => start/routes}/apis/v1/courses.ts | 4 +- {routes => start/routes}/apis/v1/health.ts | 4 +- {routes => start/routes}/apis/v1/images.ts | 4 +- {routes => start/routes}/apis/v1/lessons.ts | 4 +- {routes => start/routes}/apis/v1/me.ts | 4 +- {routes => start/routes}/apis/v1/stat.ts | 4 +- {routes => start/routes}/apis/v1/users.ts | 4 +- {routes => start/routes}/videos.ts | 0 16 files changed, 47 insertions(+), 143 deletions(-) delete mode 100644 routes/api.ts delete mode 100644 routes/apis/v1/index.ts delete mode 100644 routes/index.ts create mode 100644 start/routes.ts rename {routes => start/routes}/apis/v1/auth.ts (89%) rename {routes => start/routes}/apis/v1/categories.ts (91%) rename {routes => start/routes}/apis/v1/chat.ts (81%) rename {routes => start/routes}/apis/v1/courses.ts (98%) rename {routes => start/routes}/apis/v1/health.ts (88%) rename {routes => start/routes}/apis/v1/images.ts (87%) rename {routes => start/routes}/apis/v1/lessons.ts (95%) rename {routes => start/routes}/apis/v1/me.ts (95%) rename {routes => start/routes}/apis/v1/stat.ts (77%) rename {routes => start/routes}/apis/v1/users.ts (94%) rename {routes => start/routes}/videos.ts (100%) diff --git a/.adonisrc.json b/.adonisrc.json index e444ba7..5ada5b9 100644 --- a/.adonisrc.json +++ b/.adonisrc.json @@ -24,12 +24,7 @@ "Database": "database", "Contracts": "contracts" }, - "preloads": [ - "./routes/index", - "./start/kernel", - "./start/event", - "./start/bouncer" - ], + "preloads": ["./start/routes", "./start/kernel", "./start/event", "./start/bouncer"], "providers": [ "./providers/AppProvider", "@adonisjs/core", @@ -42,9 +37,7 @@ "@adonisjs/bouncer", "@adonisjs/drive-s3" ], - "aceProviders": [ - "@adonisjs/repl" - ], + "aceProviders": ["@adonisjs/repl"], "metaFiles": [ { "pattern": "resources/views/**/*.edge", diff --git a/routes/api.ts b/routes/api.ts deleted file mode 100644 index e78f64a..0000000 --- a/routes/api.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* eslint-disable global-require */ -import Route from '@ioc:Adonis/Core/Route'; - -Route.group(() => { - /** - * v1 - */ - require('./apis/v1/index'); -}) - .prefix('api') - .as('api'); diff --git a/routes/apis/v1/index.ts b/routes/apis/v1/index.ts deleted file mode 100644 index 9b10d4f..0000000 --- a/routes/apis/v1/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* eslint-disable global-require */ -import Route from '@ioc:Adonis/Core/Route'; - -Route.group(() => { - Route.get('/', () => { - return 'Backend API.'; - }).as('index'); - - /** - * - * Auth module - * - */ - require('./auth'); - - Route.group(() => { - /** - * - * Health check - * - */ - require('./health'); - - /** - * - * Users module - * - */ - require('./users'); - - /** - * - * Me module - * - */ - require('./me'); - - /** - * - * Courses module - * - */ - require('./courses'); - - /** - * - * Lessons module - * - */ - require('./lessons'); - - /** - * - * Images module - * - * This module is not necessary yet - */ - // require('./images'); - - /** - * - * Categories module - * - */ - require('./categories'); - - /** - * Stat module - */ - require('./stat'); - - /** - * Chat module - */ - require('./chat'); - }).middleware('auth'); -}) - .prefix('v1') - .as('v1'); diff --git a/routes/index.ts b/routes/index.ts deleted file mode 100644 index cfc24ed..0000000 --- a/routes/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint-disable global-require */ -import Route from '@ioc:Adonis/Core/Route'; - -/* -|-------------------------------------------------------------------------- -| Routes -|-------------------------------------------------------------------------- -| -| This file is dedicated for defining HTTP routes. A single file is enough -| for majority of projects, however you can define routes in different -| files and just make sure to import them inside this file. For example -| -| Define routes in following two files -| ├── start/routes/cart.ts -| ├── start/routes/customer.ts -| -| and then import them inside `start/routes.ts` as follows -| -| import './routes/cart' -| import './routes/customer' -| -*/ - -Route.group(() => { - /** - * Api routes - */ - require('./api'); - - /** - * Other routes - */ - require('./videos'); -}); diff --git a/start/routes.ts b/start/routes.ts new file mode 100644 index 0000000..57c0d27 --- /dev/null +++ b/start/routes.ts @@ -0,0 +1,17 @@ +/** + * API v1 + */ +import './routes/apis/v1/auth'; +import './routes/apis/v1/categories'; +import './routes/apis/v1/chat'; +import './routes/apis/v1/courses'; +import './routes/apis/v1/health'; +import './routes/apis/v1/lessons'; +import './routes/apis/v1/me'; +import './routes/apis/v1/stat'; +import './routes/apis/v1/users'; + +/** + * Other routes + */ +import './routes/videos'; diff --git a/routes/apis/v1/auth.ts b/start/routes/apis/v1/auth.ts similarity index 89% rename from routes/apis/v1/auth.ts rename to start/routes/apis/v1/auth.ts index 90d8ee8..3fb4fba 100644 --- a/routes/apis/v1/auth.ts +++ b/start/routes/apis/v1/auth.ts @@ -3,4 +3,4 @@ import Route from '@ioc:Adonis/Core/Route'; Route.group(() => { Route.post('login', 'Api/v1/AuthController.login').as('auth.login'); Route.post('logout', 'Api/v1/AuthController.logout').middleware('auth').as('auth.logout'); -}).prefix('auth'); +}).prefix('api/v1/auth'); diff --git a/routes/apis/v1/categories.ts b/start/routes/apis/v1/categories.ts similarity index 91% rename from routes/apis/v1/categories.ts rename to start/routes/apis/v1/categories.ts index 7e021fc..759dbff 100644 --- a/routes/apis/v1/categories.ts +++ b/start/routes/apis/v1/categories.ts @@ -6,4 +6,6 @@ Route.group(() => { Route.post('/', 'Api/v1/CategoriesController.create').middleware('role:admin,teacher').as('categories.create'); Route.delete('/:id', 'Api/v1/CategoriesController.delete').middleware('role:admin,teacher').as('categories.delete'); Route.patch('/:id', 'Api/v1/CategoriesController.update').middleware('role:admin,teacher').as('categories.update'); -}).prefix('categories'); +}) + .prefix('api/v1/categories') + .middleware('auth'); diff --git a/routes/apis/v1/chat.ts b/start/routes/apis/v1/chat.ts similarity index 81% rename from routes/apis/v1/chat.ts rename to start/routes/apis/v1/chat.ts index 0be2749..e5de68d 100644 --- a/routes/apis/v1/chat.ts +++ b/start/routes/apis/v1/chat.ts @@ -4,4 +4,6 @@ Route.group(() => { Route.get('/conversations', 'Api/v1/ChatController.getConversations') .middleware('role:admin,teacher,student') .as('chat.get-conversations'); -}).prefix('chat'); +}) + .prefix('api/v1/chat') + .middleware('auth'); diff --git a/routes/apis/v1/courses.ts b/start/routes/apis/v1/courses.ts similarity index 98% rename from routes/apis/v1/courses.ts rename to start/routes/apis/v1/courses.ts index 087a483..25d5708 100644 --- a/routes/apis/v1/courses.ts +++ b/start/routes/apis/v1/courses.ts @@ -61,4 +61,6 @@ Route.group(() => { Route.get('/:id/lessons-progress', 'Api/v1/CoursesController.getLessonsProgress') .middleware('role:admin,teacher,student') .as('courses.get-lessons-progress'); -}).prefix('courses'); +}) + .prefix('api/v1/courses') + .middleware('auth'); diff --git a/routes/apis/v1/health.ts b/start/routes/apis/v1/health.ts similarity index 88% rename from routes/apis/v1/health.ts rename to start/routes/apis/v1/health.ts index b3ba089..0090e9f 100644 --- a/routes/apis/v1/health.ts +++ b/start/routes/apis/v1/health.ts @@ -8,4 +8,6 @@ Route.group(() => { return report.healthy ? ctx.response.ok(report) : ctx.response.badRequest(report); }).as('health'); -}).prefix('health'); +}) + .prefix('api/v1/health') + .middleware('auth'); diff --git a/routes/apis/v1/images.ts b/start/routes/apis/v1/images.ts similarity index 87% rename from routes/apis/v1/images.ts rename to start/routes/apis/v1/images.ts index bae3929..fbbf7de 100644 --- a/routes/apis/v1/images.ts +++ b/start/routes/apis/v1/images.ts @@ -5,4 +5,6 @@ Route.group(() => { Route.delete('/:id', 'Api/v1/ImagesController.delete').as('images.delete'); Route.get('/', 'Api/v1/ImagesController.list').as('images.list'); Route.get('/:id', 'Api/v1/ImagesController.show').as('images.show'); -}).prefix('images'); +}) + .prefix('api/v1/images') + .middleware('auth'); diff --git a/routes/apis/v1/lessons.ts b/start/routes/apis/v1/lessons.ts similarity index 95% rename from routes/apis/v1/lessons.ts rename to start/routes/apis/v1/lessons.ts index 7893120..ee261f4 100644 --- a/routes/apis/v1/lessons.ts +++ b/start/routes/apis/v1/lessons.ts @@ -18,4 +18,6 @@ Route.group(() => { Route.get('/:id/progress', 'Api/v1/LessonsController.getVideoProgress') .middleware('role:admin,teacher,student') .as('lessons.get-video-progress'); -}).prefix('lessons'); +}) + .prefix('api/v1/lessons') + .middleware('auth'); diff --git a/routes/apis/v1/me.ts b/start/routes/apis/v1/me.ts similarity index 95% rename from routes/apis/v1/me.ts rename to start/routes/apis/v1/me.ts index c386537..d7b847c 100644 --- a/routes/apis/v1/me.ts +++ b/start/routes/apis/v1/me.ts @@ -18,4 +18,6 @@ Route.group(() => { Route.patch('/contacts', 'Api/v1/MeController.updateContacts') .middleware('role:admin,teacher,student') .as('me.update-contacts'); -}).prefix('me'); +}) + .prefix('api/v1/me') + .middleware('auth'); diff --git a/routes/apis/v1/stat.ts b/start/routes/apis/v1/stat.ts similarity index 77% rename from routes/apis/v1/stat.ts rename to start/routes/apis/v1/stat.ts index 109a29e..9c17d3c 100644 --- a/routes/apis/v1/stat.ts +++ b/start/routes/apis/v1/stat.ts @@ -2,4 +2,6 @@ import Route from '@ioc:Adonis/Core/Route'; Route.group(() => { Route.get('/', 'Api/v1/StatController.index').middleware('role:admin,teacher,student').as('stat.index'); -}).prefix('stat'); +}) + .prefix('api/v1/stat') + .middleware('auth'); diff --git a/routes/apis/v1/users.ts b/start/routes/apis/v1/users.ts similarity index 94% rename from routes/apis/v1/users.ts rename to start/routes/apis/v1/users.ts index 41b392e..e19a453 100644 --- a/routes/apis/v1/users.ts +++ b/start/routes/apis/v1/users.ts @@ -12,4 +12,6 @@ Route.group(() => { Route.delete('/:id/detach-roles', 'Api/v1/UsersController.detachRoles') .middleware('role:admin') .as('users.detach-role'); -}).prefix('users'); +}) + .prefix('api/v1/users') + .middleware('auth'); diff --git a/routes/videos.ts b/start/routes/videos.ts similarity index 100% rename from routes/videos.ts rename to start/routes/videos.ts