Viewing File: /home/ubuntu/voice-assistant-backend/routes/api.php

<?php

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\Api\Setting\SettingController;

use App\Http\Controllers\Api\Auth\{UserRegisterController, UserLoginController, ForgotPasswordController, TwoFactorAuthController, EmailVerificationController};

use App\Http\Controllers\Api\User\{AccountController, ChangePasswordController, DeleteAccountController};

use App\Http\Controllers\Api\VerificationCode\VerificationCodeController;

use App\Http\Controllers\Api\Phrase\PhraseController;

use App\Http\Controllers\Api\Voice\VoiceController;

use App\Http\Controllers\Api\GeneratedVoice\GeneratedVoiceController;

use App\Http\Controllers\Api\PhraseVoice\PhraseVoiceController;

use App\Http\Controllers\Api\StaticPageController;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/

Route::group(['prefix' => 'user', 'middleware' => 'logger'], function() {

    Route::post('call_back', [GeneratedVoiceController::class, 'call_back']);

    Route::post('settings', SettingController::class);
    
    Route::group(['prefix' => 'static_pages'], function() {

        Route::post('', [StaticPageController::class, 'index']);

        Route::post('show', [StaticPageController::class, 'show']);
    });

    Route::post('register', UserRegisterController::class);

    Route::post('login', UserLoginController::class);

    Route::post('send_verification_code', VerificationCodeController::class);

    Route::post('verify_email', EmailVerificationController::class);

    Route::controller(ForgotPasswordController::class)->group(function() {

        Route::post('forgot_password', 'forgot_password');

        Route::post('verify_forgot_password_code', 'verify_forgot_password_code');

        Route::post('reset_password', 'reset_password');

        Route::post('verification_code', 'verification_code');
    });

    Route::post('tfa_login', [TwoFactorAuthController::class, 'tfa_login']);

    Route::group(['middleware' => ['auth:sanctum', 'authBase'] ], function() {

        Route::controller(AccountController::class)->group(function() {

            Route::post('profile', 'profile');

            Route::post('update_profile', 'update_profile');

            Route::post('update_email_verification_code', 'update_email_verification_code');

            Route::post('update_email', 'update_email');

            Route::post('logout', 'logout');
        });

        Route::post('tfa_status', [TwoFactorAuthController::class, 'tfa_status']);

        Route::post('change_password', ChangePasswordController::class);

        Route::post('delete_account', DeleteAccountController::class);

        Route::controller(PhraseController::class)->group(function() {

            Route::group(['prefix' => 'phrases'], function() {

                Route::post('', 'index');

                Route::post('show', 'show');
            });
        });

        Route::controller(PhraseVoiceController::class)->group(function() {

            Route::group(['prefix' => 'phrase_voices'], function() {

                Route::post('', 'index');

                Route::post('store', 'store');

                Route::post('show', 'show');

                Route::post('status', 'status');

                Route::post('destroy', 'destroy');
            });
        });

        Route::controller(VoiceController::class)->group(function() {

            Route::group(['prefix' => 'voices'], function() {

                Route::post('', 'index');

                Route::post('store', 'store');

                Route::post('show', 'show');

                Route::post('status', 'status');

                Route::post('destroy', 'destroy');
            });
        });

        Route::controller(GeneratedVoiceController::class)->group(function() {

            Route::group(['prefix' => 'generated_voices'], function() {

                Route::post('', 'index');

                Route::post('store', 'store');

                Route::post('show', 'show');

                Route::post('status', 'status');

                Route::post('destroy', 'destroy');
            });
        });
    });
});
Back to Directory File Manager