Viewing File: /home/ubuntu/shop-website-base/app/Http/Middleware/ProviderApiValidation.php

<?php

namespace App\Http\Middleware;

use Closure;

use Illuminate\Http\Request;

use App\Helpers\Helper;

use Validator;

use Log;

use App\Models\Provider;

use DB;

use Setting;

class ProviderApiValidation
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        Log::info("Provider API - Provider ID".$request->id);

        $validator = Validator::make(
                $request->all(),
                array(
                        'token' => 'required|min:5',
                        'id' => 'required|integer|exists:providers,id'
                ),[
                    'exists' => api_error(1006),
                    'id' => api_error(1005)
                ]);

        if ($validator->fails()) {

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

            $response = array('success' => false, 'error' => $error , 'error_code' => 1006 );

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

        } else {

            $token = $request->token;

            $provider_id = $request->id;

            if (!Helper::is_token_valid(PROVIDER, $provider_id, $token, $error)) {

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

            } else {

                $provider = Provider::find($request->id);

                if(!$provider) {
                    
                    $response = array('success' => false, 'error' => api_error(1006) , 'error_code' => 1006 );

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

                }

                if(in_array($provider->status , [PROVIDER_DECLINED , PROVIDER_PENDING])) {
                    
                    $response = array('success' => false , 'error' => api_error(1000) , 'error_code' => 1000);

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

                if($provider->is_verified == PROVIDER_EMAIL_NOT_VERIFIED) {

                    if(Setting::get('is_account_email_verification') && !in_array($provider->login_by, ['facebook' , 'google'])) {

                        // Check the verification code expiry

                        Helper::check_email_verification("" , $provider, $error, PROVIDER);
                    
                        $response = array('success' => false , 'error' => api_error(1001) , 'error_code' => 1001);

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

                    }
                
                }
            }
       
        }

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