HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/umans.komma.pro/app/Komma/Routes/RouteResolver.php
<?php

namespace Komma\Routes;


class RouteResolver
{
    /**
     * Resolve route
     *
     * @return bool
     */
    public function resolve()
    {
        // Return false when we are in the control panel
        if ($this->isControlPanel()) {
            return false;
        }

        // Maybe we are receiving an alias
        // Check for a REST-route that belongs to this alias and dispatch a new Request
        \Route::get(\Request::path(), function () {
            // Return a 404 when the alias is not found in the database
            if ( ! $dispatch = $this->dispatchRoute()) {
                \App::abort(404);
            }

            return $dispatch;
        });


        \Route::post(\Request::path(), function () {
            // Return a 404 when the alias is not found in the database
            if ( ! $dispatch = $this->dispatchPostRoute()) {
                \App::abort(404);
            }

            return $dispatch;
        });

        //Project Routes
        \Route::get('projects', 'Komma\Projects\ProjectController@index');
        \Route::get('projects/{projectId}', 'Komma\Projects\ProjectController@show');

        //Post Routes
        \Route::get('blog', 'Komma\Posts\PostController@index');
        \Route::get('blog/{blogId}', 'Komma\Posts\PostController@show');

        //News Routes
        \Route::get('news', 'Komma\Posts\PostController@index');
        \Route::get('news/{newsId}', 'Komma\Posts\PostController@show');

        // Page Routes
        \Route::resource('pages', 'Komma\Pages\PageController');

        // Forms
        \Route::post('contact/process', [
            'as'   => 'contact.process',
            'uses' => 'Komma\Contact\ContactController@contactFormProcess'
        ]);

        \Route::get('contact', [
            'as'   => 'contact.form',
            'uses' => 'Komma\Contact\ContactController@contactForm'
        ]);
        \Route::get('contact/success', [
            'as'   => 'contact.success',
            'uses' => 'Komma\Contact\ContactController@contactSuccess'
        ]);


        \Route::post('offer/process', [
            'as'   => 'offer.process',
            'uses' => 'Komma\Contact\ContactController@offerProcess'
        ]);

        \Route::post('offerForm/process', [
            'as'   => 'offerForm.process',
            'uses' => 'Komma\Contact\ContactController@offerFormProcess'
        ]);

        \Route::get('offerte-aanvragen/bedankt', 'Komma\Contact\ContactController@offerFormSuccess');


        \Route::post('setLanguage', 'BaseController@setCurrentLanguage');

        // SEO routes
        \Route::get('robots.txt', 'Komma\Sitemap\SitemapController@robots');
        \Route::get('sitemap.xml', 'Komma\Sitemap\SitemapController@sitemap');

        \Route::get('sitemap', [
            'as'   => 'sitemap',
            'uses' => 'Komma\Sitemap\SitemapController@showSitemap'
        ]);

        //404 route for maps in wwwroot
        \Route::get('404', 'BaseController@abortPage');

    }

    /**
     * Dispatch new custom event with REST-route
     *
     * @return mixed
     */
    private function dispatchRoute()
    {
        $requestUri = \Request::path();
        // Get route by URI
        if ( ! $route = \DB::table('routes')
            ->where('route', '=', $requestUri)
            ->first()
        ) {
            return $this->redirectOldPages($requestUri);
        };
        // Create get request
        $request = \Request::create('/' . $route->rest_route, 'GET');

        // Dispatch request
        return \Route::dispatch($request);
    }

    private function dispatchPostRoute()
    {
        $requestUri = \Request::path();
        // Get route by URI
        if ( ! $route = \DB::table('routes')
            ->where('route', '=', $requestUri)
            ->first()
        ) {
            return false;
        }

        if ( ! in_array($route->rest_route, ['contact', 'trial'])) {
            return false;
        }
        // Create get request
        $request = \Request::create('/' . $route->rest_route, 'POST');

        // Dispatch request
        return \Route::dispatch($request);
    }

    /**
     * Check if the routes starts with "KMS"
     *
     * @return mixed
     */
    private function isControlPanel()
    {
        return \Str::startsWith(\Request::path(), 'kms');
    }

    /**
     * Dispatch Old routes
     *
     * @return mixed
     */
    private function redirectOldPages($requestUri = null)
    {
        // Old routes from radepo
        if (str_contains(\Request::root(), ['umansradepo.be', 'umans.komma.pro'])) {
            switch ($requestUri) {
                case 'pvc/referenties':
                case 'aluminium/referenties':
                case 'pvc/referenties/ral-9001-generfd-4':
                case 'pvc/referenties/ral-9001-generfd-2':
                case 'pvc/referenties/ral-9001-generfd-3':
                case 'pvc/referenties/ral-7035-generfd':
                case 'pvc/referenties/ral-9001-generfd':
                case 'pvc/referenties/ral-7016-glad':
                case 'pvc/referenties/wit-massa-2':
                case 'pvc/referenties/wit-massa':
                case 'pvc/referenties/ral-7030-gelakt':
                case 'pvc/referenties/ral-1019-gelakt':
                case 'aluminium/referenties/ral-7016-3':
                case 'aluminium/referenties/ral-9005-2':
                case 'aluminium/referenties/ral-7016-2':
                case 'aluminium/referenties/ral-9006':
                case 'aluminium/referenties/ral-9005':
                case 'aluminium/referenties/ral-7016-en-9006':
                case 'aluminium/referenties/ral-9001':
                case 'aluminium/referenties/ral-7016':
                case 'aluminium/referenties/ral-9010':
                case 'aluminium/referenties/ral-7030':
                case 'aluminium/referenties/ral-8019':
                case 'aluminium/referenties/ral-9007':
                case 'aluminium/referenties/ral-9007-2':
                case 'aluminium/referenties/ral-9009':
                    return \Redirect::to('referenties', 301);
                    break;

                case 'pvc':
                case 'aluminium':
                case 'pvc/profielen':
                case 'aluminium/profielen':
                    return \Redirect::to('ramen-en-deuren', 301);
                    break;

                case 'contact/offerte':
                    return \Redirect::to('offerte-aanvragen', 301);
                    break;

                case 'veelgestelde-vragen':
                    return \Redirect::to('/', 301);
                    break;

                default:
                    break;
            }
        }// Old routes from spouwmuurisolatie
        elseif (str_contains(\Request::root(), ['spouwmurenisoleren.be', 'dak-spouwmuurisolatie.be', 'spouwmuur.komma.pro'])) {
            switch ($requestUri) {
                case 'spouwmuurisolatie-hamont':
                case 'spouwmuurisolatie-antwerpen':
                case 'spouwmuurisolatie-bree':
                case 'spouwmuurisolatie-balen':
                case 'spouwmuurisolatie-hechtel':
                case 'spouwmuurisolatie-limburg':
                case 'spouwmuurisolatie-lommel':
                case 'spouwmuurisolatie-geel':
                case 'spouwmuurisolatie-bocholt':
                case 'spouwmuurisolatie-mol':
                case 'spouwmuurisolatie-neerpelt':
                case 'spouwmuurisolatie-peer':
                case 'spouwmuurisolatie-overpelt':
                    return \Redirect::to('spouwmuurisolatie', 301);
                    break;

                case 'product':
                    return \Redirect::to('spouwmuurisolatie/isolatieparels', 301);
                    break;

                case 'contact/offerte':
                    return \Redirect::to('offerte-aanvragen', 301);
                    break;

                case 'veelgestelde-vragen':
                case 'home':
                case 'premies':
                    return \Redirect::to('/', 301);
                    break;

                default:
                    break;
            }
        }
        return false;

    }
}