<?php

namespace App\Http\Middleware;

use Closure;
use Config;
use Route;
use Schema;
use App\Models\Setting;

class CheckLocale
{
  /**
   * Handle the locale for the user, default to settings otherwise
   *
   * @param  \Illuminate\Http\Request  $request
   * @param  \Closure  $next
   * @param  string|null  $guard
   * @return mixed
   */

    public function handle($request, Closure $next, $guard = null)
    {
        if (Schema::hasTable('settings')) {
            // User's preference
            if (($request->user()) && ($request->user()->locale)) {
                \App::setLocale($request->user()->locale);

                // App setting preference
            } elseif ((Setting::getSettings()) &&  (Setting::getSettings()->locale!='')) {
                \App::setLocale(Setting::getSettings()->locale);

                // Default app setting
            } else {
                \App::setLocale(config('app.locale'));
            }
        }
        \App::setLocale(config('app.locale'));

        return $next($request);
    }
}