• File: CheckIMaliAppVersion.php
  • Full Path: /var/www/imaliapi/app/Http/Middleware/CheckIMaliAppVersion.php
  • Date Modified: 05/23/2025 12:38 AM
  • File size: 1.76 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Middleware;

use App\ImaliAppVersion;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;

class CheckIMaliAppVersion
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        // dd($request->header('X-APP-Version'));
        // Obtém o token do Header
        $header = $request->header('X-APP-Version');

        // Log::info($header);
        Log::info('Header da APP', [
            'content' => $header
        ]);

        $imali_verson = ImaliAppVersion::query()->where('status', 1)->first();

        // $user = ImaliAppVersion::where('version_number', $header)->where('status', 1)->first();

        // if (!$header || !$user) return response()->json(['message' => 'Versão da APP desactualizada, vá a sua loja de Aplicativo para actualizar a APP', 'data' => $imali_verson], 400);

        // todo ---- new code 22 May 2025
        $requiredVersion = $imali_verson->version_number;

        if (!$header || version_compare($header, $requiredVersion, '<')) {
            return response()->json([
                'message' => 'Versão da APP desactualizada, vá a sua loja de Aplicativo para actualizar a APP.',
                'data' => $imali_verson
                // 'versao_requerida' => $requiredVersion
            ], 400);
        }
        // todo ---- new code 22 May 2025

        // O token foi validado, continuar o fluxo da requisição
        return $next($request);
    }
}