From 00e515e99534cdf062cccb94815dd789f8ec9f18 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Fri, 26 Feb 2021 17:03:00 +0100 Subject: [PATCH] - API routes refactoring part 2 --- app/Providers/RouteServiceProvider.php | 42 ++++-- routes/admin.php | 61 +++++++++ routes/api.php | 175 ++++--------------------- routes/setup.php | 12 ++ routes/user.php | 38 ++++++ 5 files changed, 170 insertions(+), 158 deletions(-) create mode 100644 routes/admin.php create mode 100644 routes/setup.php create mode 100644 routes/user.php diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 527eee34..445804b5 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -30,8 +30,6 @@ class RouteServiceProvider extends ServiceProvider */ public function boot() { - // - parent::boot(); } @@ -46,7 +44,11 @@ class RouteServiceProvider extends ServiceProvider $this->mapWebRoutes(); - // + $this->mapAdminApiRoutes(); + + $this->mapSetupWizardApiRoutes(); + + $this->mapUserApiRoutes(); } /** @@ -59,8 +61,8 @@ class RouteServiceProvider extends ServiceProvider protected function mapWebRoutes() { Route::middleware('web') - ->namespace($this->namespace) - ->group(base_path('routes/web.php')); + ->namespace($this->namespace) + ->group(base_path('routes/web.php')); } /** @@ -73,8 +75,32 @@ class RouteServiceProvider extends ServiceProvider protected function mapApiRoutes() { Route::prefix('api') - ->middleware('api') - ->namespace($this->namespace) - ->group(base_path('routes/api.php')); + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/api.php')); + } + + protected function mapAdminApiRoutes() + { + Route::prefix('api/admin') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/admin.php')); + } + + protected function mapUserApiRoutes() + { + Route::prefix('api/user') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/user.php')); + } + + protected function mapSetupWizardApiRoutes() + { + Route::prefix('api/setup') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/setup.php')); } } diff --git a/routes/admin.php b/routes/admin.php new file mode 100644 index 00000000..a1508e71 --- /dev/null +++ b/routes/admin.php @@ -0,0 +1,61 @@ + 'dashboard'], function () { + Route::get('/new-users', [DashboardController::class, 'new_registrations']); + Route::get('/', [DashboardController::class, 'index']); +}); + +// Users +Route::group(['prefix' => 'users'], function () { + Route::post('/{id}/send-password-email', [UserController::class, 'send_password_reset_email']); + Route::patch('/{id}/capacity', [UserController::class, 'change_storage_capacity']); + Route::get('/{id}/subscription', [UserController::class, 'subscription']); + Route::delete('/{id}/delete', [UserController::class, 'delete_user']); + Route::patch('/{id}/role', [UserController::class, 'change_role']); + Route::get('/{id}/invoices', [UserController::class, 'invoices']); + Route::get('/{id}/storage', [UserController::class, 'storage']); + Route::post('/create', [UserController::class, 'create_user']); + Route::get('/{id}/detail', [UserController::class, 'details']); + Route::get('/', [UserController::class, 'users']); +}); + +// Plans +Route::group(['prefix' => 'plans'], function () { + Route::get('/{id}/subscribers', [PlanController::class, 'subscribers']); + Route::patch('/{id}/update', [PlanController::class, 'update']); + Route::delete('/{id}', [PlanController::class, 'delete']); + Route::post('/store', [PlanController::class, 'store']); + Route::get('/{id}', [PlanController::class, 'show']); + Route::get('/', [PlanController::class, 'index']); +}); + +// Pages +Route::group(['prefix' => 'pages'], function () { + Route::patch('/{slug}', [PagesController::class, 'update']); + Route::get('/{slug}', [PagesController::class, 'show']); + Route::get('/', [PagesController::class, 'index']); +}); + +// Invoices +Route::group(['prefix' => 'invoices'], function () { + Route::get('/{token}', [InvoiceController::class, 'show']); + Route::get('/', [InvoiceController::class, 'index']); +}); + +// Settings +Route::group(['prefix' => 'settings'], function () { + Route::get('/flush-cache', [AppFunctionsController::class, 'flush_cache']); + Route::post('/stripe', [SettingController::class, 'set_stripe']); + Route::post('/email', [SettingController::class, 'set_email']); + Route::patch('/', [SettingController::class, 'update']); + Route::get('/', [SettingController::class, 'show']); +}); \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 1e5c1c70..3d4941f4 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,22 +1,6 @@ ['api']], function () { +// Edit Functions +Route::patch('/rename-item/{unique_id}/public/{token}', [EditItemsController::class, 'guest_rename_item']); +Route::get('/zip-folder/{unique_id}/public/{token}', [EditItemsController::class, 'guest_zip_folder']); +Route::post('/create-folder/public/{token}', [EditItemsController::class, 'guest_create_folder']); +Route::post('/remove-item/public/{token}', [EditItemsController::class, 'guest_delete_item']); +Route::post('/zip/public/{token}', [EditItemsController::class, 'guest_zip_multiple_files']); +Route::post('/upload/public/{token}', [EditItemsController::class, 'guest_upload']); +Route::post('/move/public/{token}', [EditItemsController::class, 'guest_move']); - // Edit Functions - Route::patch('/rename-item/{unique_id}/public/{token}', [EditItemsController::class, 'guest_rename_item']); - Route::post('/create-folder/public/{token}', [EditItemsController::class, 'guest_create_folder']); - Route::post('/remove-item/public/{token}', [EditItemsController::class, 'guest_delete_item']); - Route::post('/zip/public/{token}', [EditItemsController::class, 'guest_zip_multiple_files']); - Route::get('/zip-folder/{unique_id}/public/{token}', [EditItemsController::class, 'guest_zip_folder']); - Route::post('/upload/public/{token}', [EditItemsController::class, 'guest_upload']); - Route::post('/move/public/{token}', [EditItemsController::class, 'guest_move']); +// Sharing page browsing +Route::get('/folders/{unique_id}/public/{token}', [FileSharingController::class, 'get_public_folders']); +Route::get('/navigation/public/{token}', [FileSharingController::class, 'get_public_navigation_tree']); +Route::post('/shared/authenticate/{token}', [FileSharingController::class, 'authenticate']); +Route::get('/search/public/{token}', [FileSharingController::class, 'search_public']); +Route::get('/files/{token}/public', [FileSharingController::class, 'file_public']); +Route::get('/shared/{token}', [ShareController::class, 'show']); - // Sharing page browsing - Route::get('/folders/{unique_id}/public/{token}', [FileSharingController::class, 'get_public_folders']); - Route::get('/navigation/public/{token}', [FileSharingController::class, 'get_public_navigation_tree']); - Route::post('/shared/authenticate/{token}', [FileSharingController::class, 'authenticate']); - Route::get('/search/public/{token}', [FileSharingController::class, 'search_public']); - Route::get('/files/{token}/public', [FileSharingController::class, 'file_public']); - Route::get('/shared/{token}', [ShareController::class, 'show']); +// Pages +Route::post('/contact', [AppFunctionsController::class, 'contact_form']); +Route::get('/page/{slug}', [AppFunctionsController::class, 'get_page']); +Route::get('/content', [AppFunctionsController::class, 'get_settings']); - // Pages - Route::post('/contact', [AppFunctionsController::class, 'contact_form']); - Route::get('/page/{slug}', [AppFunctionsController::class, 'get_page']); - Route::get('/content', [AppFunctionsController::class, 'get_settings']); +// Stripe +Route::get('/pricing', [PricingController::class, 'index']); - // Stripe - Route::get('/pricing', [PricingController::class, 'index']); - - // Password - Route::group(['prefix' => 'password'], function () { - Route::post('/email', [ForgotPasswordController::class, 'sendResetLinkEmail']); - Route::post('/reset', [ResetPasswordController::class, 'reset']); - }); - - // User - Route::group(['prefix' => '/user'], function () { - Route::post('/check', [AuthController::class, 'check_account']); - Route::post('/register', [AuthController::class, 'register']); - Route::post('/login', [AuthController::class, 'login']); - }); - - // Setup Wizard - Route::group(['prefix' => 'setup'], function () { - Route::post('/purchase-code', [SetupWizardController::class, 'verify_purchase_code']); - Route::post('/database', [SetupWizardController::class, 'setup_database']); - Route::post('/stripe-credentials', [SetupWizardController::class, 'store_stripe_credentials']); - Route::post('/stripe-billings', [SetupWizardController::class, 'store_stripe_billings']); - Route::post('/stripe-plans', [SetupWizardController::class, 'store_stripe_plans']); - Route::post('/environment-setup', [SetupWizardController::class, 'store_environment_setup']); - Route::post('/app-setup', [SetupWizardController::class, 'store_app_settings']); - Route::post('/admin-setup', [SetupWizardController::class, 'create_admin_account']); - }); +// Password +Route::group(['prefix' => 'password'], function () { + Route::post('/email', [ForgotPasswordController::class, 'sendResetLinkEmail']); + Route::post('/reset', [ResetPasswordController::class, 'reset']); }); // User master Routes @@ -105,38 +62,12 @@ Route::group(['middleware' => ['auth:sanctum']], function () { Route::get('/', [BrowseController::class, 'trash']); }); - // Subscription - Route::group(['prefix' => 'subscription'], function () { - Route::get('/setup-intent', [SubscriptionController::class, 'stripe_setup_intent']); - Route::post('/upgrade', [SubscriptionController::class, 'upgrade']); - Route::post('/cancel', [SubscriptionController::class, 'cancel']); - Route::post('/resume', [SubscriptionController::class, 'resume']); - }); - // Favourites Route::group(['prefix' => 'folders'], function () { Route::delete('/favourites/{unique_id}', [FavouriteController::class, 'destroy']); Route::post('/favourites', [FavouriteController::class, 'store']); }); - // User - Route::group(['prefix' => 'user'], function () { - Route::patch('/relationships/settings', [AccountController::class, 'update_user_settings']); - Route::post('/password', [AccountController::class, 'change_password']); - Route::patch('/profile', [AccountController::class, 'update_profile']); - Route::get('/subscription', [SubscriptionController::class, 'show']); - Route::get('/invoices', [AccountController::class, 'invoices']); - Route::get('/storage', [AccountController::class, 'storage']); - Route::get('/logout', [AuthController::class, 'logout']); - Route::get('/', [AccountController::class, 'user']); - - // Payment cards - Route::delete('/payment-cards/{id}', [PaymentMethodsController::class, 'delete']); - Route::patch('/payment-cards/{id}', [PaymentMethodsController::class, 'update']); - Route::post('/payment-cards', [PaymentMethodsController::class, 'store']); - Route::get('/payments', [PaymentMethodsController::class, 'index']); - }); - // Share Route::group(['prefix' => 'share'], function () { Route::post('/{token}/send-email', [ShareController::class, 'shared_send_via_email']); @@ -146,62 +77,6 @@ Route::group(['middleware' => ['auth:sanctum']], function () { }); }); -// Admin -Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:master']], function () { - - // Admin - Route::group(['prefix' => 'dashboard'], function () { - Route::get('/', [DashboardController::class, 'index']); - Route::get('/new-users', [DashboardController::class, 'new_registrations']); - }); - - // Users - Route::group(['prefix' => 'users'], function () { - Route::post('/{id}/send-password-email', [UserController::class, 'send_password_reset_email']); - Route::patch('/{id}/capacity', [UserController::class, 'change_storage_capacity']); - Route::get('/{id}/subscription', [UserController::class, 'subscription']); - Route::delete('/{id}/delete', [UserController::class, 'delete_user']); - Route::patch('/{id}/role', [UserController::class, 'change_role']); - Route::get('/{id}/invoices', [UserController::class, 'invoices']); - Route::get('/{id}/storage', [UserController::class, 'storage']); - Route::post('/create', [UserController::class, 'create_user']); - Route::get('/{id}/detail', [UserController::class, 'details']); - Route::get('/', [UserController::class, 'users']); - }); - - // Plans - Route::group(['prefix' => 'plans'], function () { - Route::get('/{id}/subscribers', [PlanController::class, 'subscribers']); - Route::patch('/{id}/update', [PlanController::class, 'update']); - Route::delete('/{id}', [PlanController::class, 'delete']); - Route::post('/store', [PlanController::class, 'store']); - Route::get('/{id}', [PlanController::class, 'show']); - Route::get('/', [PlanController::class, 'index']); - }); - - // Pages - Route::group(['prefix' => 'pages'], function () { - Route::patch('/{slug}', [PagesController::class, 'update']); - Route::get('/{slug}', [PagesController::class, 'show']); - Route::get('/', [PagesController::class, 'index']); - }); - - // Invoices - Route::group(['prefix' => 'invoices'], function () { - Route::get('/{token}', [InvoiceController::class, 'show']); - Route::get('/', [InvoiceController::class, 'index']); - }); - - // Settings - Route::group(['prefix' => 'settings'], function () { - Route::post('/email', [InvoiceController::class, 'set_email']); - Route::post('/stripe', [InvoiceController::class, 'set_stripe']); - Route::patch('/', [InvoiceController::class, 'update']); - Route::get('/', [InvoiceController::class, 'show']); - Route::get('/flush-cache', [AppFunctionsController::class, 'flush_cache']); - }); -}); - // Protected sharing routes for authenticated user Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor']], function () { diff --git a/routes/setup.php b/routes/setup.php new file mode 100644 index 00000000..d0284da8 --- /dev/null +++ b/routes/setup.php @@ -0,0 +1,12 @@ + ['auth:sanctum']], function () { + + // Account + Route::patch('/relationships/settings', [AccountController::class, 'update_user_settings']); + Route::post('/password', [AccountController::class, 'change_password']); + Route::patch('/profile', [AccountController::class, 'update_profile']); + Route::get('/subscription', [SubscriptionController::class, 'show']); + Route::get('/invoices', [AccountController::class, 'invoices']); + Route::get('/storage', [AccountController::class, 'storage']); + Route::get('/logout', [AuthController::class, 'logout']); + Route::get('/', [AccountController::class, 'user']); + + // Payment cards + Route::delete('/payment-cards/{id}', [PaymentMethodsController::class, 'delete']); + Route::patch('/payment-cards/{id}', [PaymentMethodsController::class, 'update']); + Route::post('/payment-cards', [PaymentMethodsController::class, 'store']); + Route::get('/payments', [PaymentMethodsController::class, 'index']); + + // Subscription + Route::group(['prefix' => 'subscription'], function () { + Route::get('/setup-intent', [SubscriptionController::class, 'stripe_setup_intent']); + Route::post('/upgrade', [SubscriptionController::class, 'upgrade']); + Route::post('/cancel', [SubscriptionController::class, 'cancel']); + Route::post('/resume', [SubscriptionController::class, 'resume']); + }); +}); +