Viewing File: /home/ubuntu/vedadeals-backend-base/app/Http/Middleware/UserApiValidation.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

use Validator, DB, Setting, Log, Cache, Carbon\Carbon;

use App\Helpers\Helper;

use App\Models\User;

class UserApiValidation
{
    /**
     * 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)
    {
        
        $basic_rules = [
                        'token' => 'required|min:5',
                        'id' => 'required|integer|exists:users,id'
                    ];

        $custom_errors = [
                    'id' => api_error(1005),
                    'exists' => api_error(1002)
                    ];

        $validator = Validator::make($request->all(), $basic_rules, $custom_errors);
        
        if($validator->fails()) {

            $error = implode(',', $validator->messages()->all());

            $response = ['success' => false, 'error' => $error, 'error_code' => 1002];

            return response()->json($response, 200);

        } else {

            $token = $request->token; $user_id = $request->id;

            if (!Helper::is_token_valid(USER, $user_id, $token, $error)) {

                return response()->json($error, 200);

            } else {

                $user = User::find($request->id);

                if(!$user) {
                    
                    $response = ['success' => false, 'error' => api_error(1002), 'error_code' => 1002];

                    return response()->json($response, 200);

                }

                if($user->status == USER_DECLINED) {

                    $user->update(['is_logged_in' => NO]);
                    
                    $response = ['success' => false, 'error' => api_error(1000), 'error_code' => 1000];

                    return response()->json($response, 200);
               
                }
            }
       
        }

        return $next($request);
    }
}
Back to Directory File Manager