Edit File: DelegateJoinrequestController.php
<?php namespace App\Http\Controllers\Site; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use App\Models\User; use App\Models\Nationality; use App\Models\Region; use App\Models\City; use App\Models\Cartype; use App\Models\DelegateJoinrequest; use App\Models\Country; use App\Models\DelegateCompany; use App\Http\Requests\DelegationValidationJoinRequest; use Illuminate\Support\Facades\Session; use Validator; use Auth; class DelegateJoinrequestController extends Controller { use GeneralTrait, Uploadable; public function login(){ $countries = Country::all(); return view('delegate_join_request.login',compact('countries')); } public function postLogin(Request $request){ $validator = Validator::make($request->all(), [ 'phone' => 'required|numeric|min:10', 'country_key' => 'required' ]); if ($validator->fails()) { $msg = implode(' , ',$validator->errors()->all()); return response()->json(['key'=>'fail','msg'=>$msg]); } $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if($user = User::where('phone','=',$phone)->first()){ if($user->status == 'block'){ $msg = trans('auth.blocked_user'); return response()->json(['key'=>'fail','msg'=>$msg]); } $user->status = 'pending'; $user->update(); }else{ $user = new User(); $user->completed_info = 'false'; $user->status = 'pending'; $user->phone = $phone; $user->country_key = $request['country_key']; $user->save(); } $user->sendVerificationCode(); Session::put(['user'=>$user, 'verification'=>'true']); return response()->json(['key'=>'success','url'=>route('delegate_join_request.verification')]); } public function verification(){ if(Session::has('user') && Session::get('verification') == 'true'){ return view('delegate_join_request.verification'); } return redirect()->route('delegate_join_request.login'); } public function resend(){ if(!Session::has('user')){ return route('delegate_join_request.login'); } $user = Session::get('user'); $user->sendVerificationCode(); return response()->json(['location' => route('delegate_join_request.verification') ,'key' => 'success', 'msg' => awtTrans('تم اعاده ارسال الكود بنجاح')]); } public function postVerification(Request $request){ if (!Session::has('user')){ return redirect()->route('delegate_join_request.login'); } if(Session::has('verification') && Session::get('verification') == 'false'){ // dd(Session::get('verification')); return response()->json(['key'=>'fail','url'=>route('delegate_join_request.login')]); } $user = Session::get('user'); $code = implode("", $request['code']); if($user->code == $code){ $user->markAsActive(); Auth::login($user); return response()->json(['key'=>'success','url'=>route('delegate_join_request.join_request')]); } $msg = trans('auth.invalid_code'); return response()->json(['key'=>'fail','msg'=>$msg]); } public function joinRequest(){ Session::put('verification', 'false'); $nationalities = Nationality::all(); $regions = Region::all(); $cartypes = Cartype::all(); $companies = User::where('type' , 'company')->where('approve' , 'accept')->get(); return view('delegate_join_request.join_request',compact('nationalities','regions','companies','cartypes')); } public function changeRegion($id){ $region = Region::find($id); if(!$region){ $msg = 'هذه المنطقة غير متاحة'; return response()->json(['key'=>'fail','msg'=>$msg]); } $cities = City::where('region_id',$region->id)->get(); $view = view("delegate_join_request.cities",compact('cities'))->render(); return response()->json(['key'=>'success','html'=>$view]); } /** public function getCities **/ public function getCities(Request $request) { $cities = City::where('region_id', $request['region_id'])->get(); $arr = ['cities'=>$cities ]; if (isset($request->city_id)){ $arr['selectedCity'] = $request['city_id']; } $html = view('admin.delegates.cities' )->with($arr)->render(); return response()->json([ 'key'=>'success', 'html'=> $html ]); } public function postJoinRequest(DelegationValidationJoinRequest $request){ $user = Auth::user(); // delete old join requests $user->delegateJoinRequests()->delete(); $delegate_join_request_data = $request->validatedExcept('terms'); // insert new $delegate_join_request=DelegateJoinrequest::create($delegate_join_request_data+['phone' => $user->phone , 'email'=>$user->email]); $user->update(['approve'=>'pending']); $delegate_join_request->update(['user_id'=> $user->id]); Session::forget('user'); Auth::logout(); return response()->json(['key'=>'success','url'=>route('delegate_join_request.successeful_request')]); } public function successefulRequest(){ return view('delegate_join_request.successeful_request'); } }
Back to File Manager