%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/klinisol/klinisol-api/app/Http/Middleware/
Upload File :
Create Path :
Current File : //var/www/html/klinisol/klinisol-api/app/Http/Middleware/SetDatabaseConnection.php

<?php

namespace App\Http\Middleware;

use App\Models\Department;
use App\Tenancy;
use Closure;
use Illuminate\Http\Request;

class SetDatabaseConnection
{
    /**
     * Handle an incoming request.
     *
     * @param Request $request
     * @param Closure $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        if ($conn = $request->header('Department')) {
            /** @var Department $result */
            $result = Department::on('klinisol_main')
                                ->where('is_active', '=', 1)
                                ->where('code', $conn)
                                ->first();
            if ($result) {
                $current_host = config('database.connections.mysql.host');
                $current_db = config('database.connections.mysql.database');
                if ($current_host !== $result->host || $current_db !== $result->database) {
                    Tenancy::setDBConnection($result);
                }

                return $next($request);
            }
            return response()->json(['error' => 'Department value is not valid!'], 401);
        }
        return response()->json(['error' => 'No department is selected!'], 401);
    }
}

Zerion Mini Shell 1.0