<?php namespace Litematrimony\Profile\Providers; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Routing\Router; use Litematrimony\Profile\Models\Profile; use Request; use Route; class RouteServiceProvider extends ServiceProvider { /** * This namespace is applied to the controller routes in your routes file. * * In addition, it is set as the URL generator's root namespace. * * @var string */ protected $namespace = 'Litematrimony\Profile\Http\Controllers'; /** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot() { parent::boot(); if (Request::is('*/profile/profile/*')) { Route::bind('profile', function ($profile) { $profilerepo = $this->app->make('Litematrimony\Profile\Interfaces\ProfileRepositoryInterface'); return $profilerepo->findorNew($profile); }); } if (Request::is('*/profile/visit/*')) { Route::bind('visit', function ($visit) { $visitrepo = $this->app->make('Litematrimony\Profile\Interfaces\VisitRepositoryInterface'); return $visitrepo->findorNew($visit); }); } if (Request::is('*/profile/shortlist/*')) { Route::bind('shortlist', function ($shortlist) { $shortlistrepo = $this->app->make('Litematrimony\Profile\Interfaces\ShortlistRepositoryInterface'); return $shortlistrepo->findorNew($shortlist); }); } if (Request::is('*/profile/request/*')) { Route::bind('request', function ($request) { $requestrepo = $this->app->make('Litematrimony\Profile\Interfaces\RequestRepositoryInterface'); return $requestrepo->findorNew($request); }); } } /** * Define the routes for the package. * * @return void */ public function map() { $this->mapWebRoutes(); $this->mapApiRoutes(); } /** * Define the "web" routes for the package. * * These routes all receive session state, CSRF protection, etc. * * @return void */ protected function mapWebRoutes() { if (request()->segment(1) == 'api' || request()->segment(2) == 'api') { return; } Route::group([ 'middleware' => 'web', 'namespace' => $this->namespace, 'prefix' => trans_setlocale(), ], function ($router) { require (__DIR__ . '/../../routes/web.php'); }); } /** * Define the "api" routes for the package. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { if(request()->segment(1) != 'api' && request()->segment(2) != 'api') { return; } Route::group([ 'middleware' => 'api', 'namespace' => $this->namespace, 'prefix' => trans_setlocale() . '/api', ], function ($router) { require (__DIR__ . '/../../routes/api.php'); }); } }