digitalbiblesociety/dbp

View on GitHub
routes/web.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
| Middleware options can be located in `app/Http/Kernel.php`
|
*/

Localization::localizedRoutesGroup(function () {

    // Homepage Route
    Route::get('/', 'WelcomeController@welcome')->name('welcome');

    // Overview Page
    Route::get('/about/', 'WelcomeController@overview')->name('overview');

    // Legal Overview
    Route::get('/about/legal', 'WelcomeController@legal')->name('legal');
    Route::get('/acerca-de/legal', 'WelcomeController@legal')->name('es.legal')->localization('es');

    // Legal | Eula Page
    Route::get('/about/eula', 'WelcomeController@eula')->name('eula');
    Route::get('/acerca-de/eula', 'WelcomeController@eula')->name('es.eula')->localization('es');

    // Legal | License Page
    Route::get('/about/license', 'WelcomeController@license')->name('license');
    Route::get('/acerca-de/licencia', 'WelcomeController@license')->name('es.license')->localization('es');

    // Legal | Privacy Policy
    Route::get('/about/privacy-policy', 'WelcomeController@privacyPolicy')->name('privacy_policy');
    Route::get('/acerca-de/politica-de-privacidad', 'WelcomeController@privacyPolicy')->name('es.privacy_policy')->localization('es');

    Route::get('/about/contact', 'User\ContactController@create')->name('contact.create');
    Route::post('/about/contact', 'User\ContactController@store')->name('contact.store');

    // About
    Route::get('/about/relations', 'WelcomeController@relations')->name('relations');
    Route::get('/organizations', 'Organization\OrganizationsController@index')->name('organizations.index');

    // About | Joining
    Route::get('/about/join', 'WelcomeController@join')->name('about.join');
    Route::get('/about/partnering', 'WelcomeController@partnering')->name('about.partnering');

    // Reader
    Route::get('/reader', 'Bible\ReaderController@languages')->name('reader.languages');
    Route::get('/reader/languages/{language_id}', 'Bible\ReaderController@bibles')->name('reader.bibles');
    Route::get('/reader/bibles/{id}/', 'Bible\ReaderController@books')->name('reader.books');
    Route::get('/reader/bibles/{id}/{book}/{chapter}', 'Bible\ReaderController@chapter')->name('reader.chapter');

    // Authentication Routes | Passwords
    Route::name('login')->match(['get','post'], 'login', 'User\UsersController@login');
    Route::name('logout')->post('logout', 'User\UsersController@logout');
    Route::name('register')->get('register', 'User\UsersController@create');
    Route::post('register', 'User\UsersController@store');

    Route::name('password.request')->get('password/reset',               'User\PasswordsController@showRequestForm');
    Route::name('password.reset')->get('password/reset/{reset_token}',   'User\PasswordsController@showResetForm');
    Route::name('password.email')->post('password/email',                'User\PasswordsController@triggerPasswordResetEmail');
    Route::name('password.attempt')->post('password/reset/attempt',      'User\PasswordsController@validatePasswordReset');
    Route::name('password.attemptPage')->get('password/reset/attempt',   'User\PasswordsController@passwordAttempt');

    Route::name('api_key_email')->post('keys/email',                     'User\Dashboard\KeysController@sendKeyEmail');
    Route::name('api_key_generate')->get('keys/generate/{email_token}',  'User\Dashboard\KeysController@generateAPIKey');

    Route::name('wiki_home')->get('/wiki',                   'WikiController@home');
    Route::name('wiki_bibles.one')->get('/wiki/bibles/{id}', 'WikiController@bible');
    Route::name('wiki_bibles.all')->get('/wiki/bibles',      'WikiController@bibles');

    // Public Routes
    Route::group(['middleware' => ['web']], function () {

        Route::name('validate.index')->get('/validate',                                  'ValidateController@index');
        Route::name('validate.bibles')->get('/validate/bibles',                          'ValidateController@bibles');
        Route::name('validate.filesets')->get('/validate/filesets',                      'ValidateController@filesets');
        Route::name('validate.languages')->get('/validate/languages',                    'ValidateController@languages');
        Route::name('validate.organizations')->get('/validate/organizations',            'ValidateController@organizations');
        Route::name('validations.placeholder_books')->get('/valdiate/placeholder_books', 'ValidateController@placeholder_books');

        // Getting Started
        Route::name('apiDocs_bible_equivalents')->get('/api/bible/bible-equivalents', 'Bible\BibleEquivalentsController@index');

        // Docs Routes
        Route::name('docs')->get('docs', 'User\DocsController@index');
        Route::name('swagger')->get('docs/swagger/{version?}', 'User\DocsController@swagger');
        Route::name('history')->get('docs/history', 'User\DocsController@history');
        Route::name('docs.sdk')->get('sdk', 'User\DocsController@sdk');
        Route::name('docs.getting_started')->get('guides/getting-started', 'User\DocsController@start');
        Route::name('docs_team')->get('docs/team', 'User\DocsController@team');
        Route::name('docs_bible_equivalents')->get('docs/bibles/equivalents', 'User\DocsController@bibleEquivalents');
        Route::name('docs_bible_books')->get('docs/bibles/books', 'User\DocsController@books');
        Route::name('docs_bibles')->get('docs/bibles', 'User\DocsController@bibles');
        Route::name('docs_language_create')->get('docs/language/create', 'User\DocsController@languages');
        Route::name('docs_language_update')->get('docs/language/update', 'User\DocsController@languages');
        Route::name('docs_languages')->get('docs/languages', 'User\DocsController@languages');
        Route::name('docs_countries')->get('docs/countries', 'User\DocsController@countries');
        Route::name('docs_alphabets')->get('docs/alphabets', 'User\DocsController@alphabets');
        Route::name('docs_analysis')->get('docs/code-analysis', 'User\DocsController@codeAnalysis');

        // Docs Generator Routes
        Route::name('swagger_docs_gen')->get('open-api-{version}.json',          'User\SwaggerDocsController@swaggerDocsGen');
        Route::name('swagger_database')->get('docs/swagger/database',            'User\SwaggerDocsController@swaggerDatabase');
        Route::name('swagger_database_model')->get('docs/swagger/database/{id}', 'User\SwaggerDocsController@swaggerDatabase_model');

        // Activation Routes
        Route::name('projects.connect')->get('/connect/{token}', 'Organization\ProjectsController@connect');

        // Socialite Register Routes
        Route::name('social.redirect')->get('/login/redirect/{provider}', 'User\SocialController@redirect');
        Route::name('social.handle')->get('/login/{provider}/callback',   'User\SocialController@callback');
    });

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

        Route::name('dashboard.bibles')->get('dashboard/bibles',                            'User\Dashboard\BibleManagementController@index');
        Route::name('dashboard.bibles.create')->get('dashboard/bibles/create',              'User\Dashboard\BibleManagementController@create');
        Route::name('dashboard.bibles.store')->post('dashboard/bibles',                     'User\Dashboard\BibleManagementController@store');
        Route::name('dashboard.bibles.edit')->get('dashboard/bibles/{bible_id}',            'User\Dashboard\BibleManagementController@edit');
        Route::name('dashboard.bibles.update')->put('dashboard/bibles/{bible_id}',          'User\Dashboard\BibleManagementController@update');

        Route::name('dashboard')->get('home',                                               'User\Dashboard\DashboardController@home');
        Route::name('dashboard_alt')->get('dashboard',                                      'User\Dashboard\DashboardController@home');
        Route::name('dashboard.projects.index')->get('api/projects',                        'User\Dashboard\ProjectsController@index');
        Route::name('dashboard.projects.create')->get('api/projects/create',                'User\Dashboard\ProjectsController@create');
        Route::name('dashboard.projects.store')->post('api/projects',                       'User\Dashboard\ProjectsController@store');
        Route::name('dashboard.projects.members')->get('api/projects/{project_id}/members', 'User\Dashboard\ProjectsController@members');
        Route::name('dashboard.projects.edit')->get('api/projects/{project_id}/edit',       'User\Dashboard\ProjectsController@edit');
        Route::name('dashboard.projects.update')->put('api/projects/{project_id}/',         'User\Dashboard\ProjectsController@update');

        // Keys
        Route::resource('api/keys', 'User\Dashboard\KeysController');
        Route::name('dashboard.keys.create')->get('api/keys/create',            'User\Dashboard\KeysController@create');
        Route::name('dashboard.keys.store')->post('api/keys',                   'User\Dashboard\KeysController@store');
        Route::name('dashboard.keys.clone')->post('api/keys/{id}/clone',        'User\Dashboard\KeysController@clone');
        Route::name('dashboard.keys.edit')->get('api/keys/{id}/edit',           'User\Dashboard\KeysController@edit');
        Route::name('dashboard.keys.update')->put('api/keys/{id}',              'User\Dashboard\KeysController@update');
        Route::name('dashboard.keys.access')->get('api/keys/{id}/accessGroups', 'User\Dashboard\KeysController@accessGroups');
        Route::name('dashboard.keys.delete')->get('api/keys/{id}/delete',       'User\Dashboard\KeysController@delete');
        Route::name('dashboard.keys.destroy')->post('api/keys/{id}/delete',      'User\Dashboard\KeysController@destroy');

        // Profiles
        Route::name('profile')->get('profile',                                              'User\Dashboard\ProfileController@profile');
        Route::name('profile.update')->put('profile/{user_id}',                             'User\Dashboard\ProfileController@updateProfile');

    });


});

Route::name('api_status')->get('/api/status', 'ApiMetadataController@getStatus');