File manager - Edit - /home/autoph/public_html/projects/Rating-AutoHub/app/Http/Controllers/AnswerController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Link; use App\Models\Questionnaire; use App\Models\Questions; use App\Models\Answer; use App\Models\System; use App\Models\Template; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Redirect; use Jenssegers\Agent\Agent; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; use Illuminate\Http\Request; class AnswerController extends Controller { public function verify(Request $request){ $page_title = "Survey Form"; $disclaimer = DB::table('disclaimer')->select('content')->first(); // $request->validate([ // 'f_name' => 'required', // 'l_name' => 'required', // 'email' => 'required', // 'comp_id' => 'required', // ],[ // ]); if(Auth::check()){ $questionsArr = []; $url = $request->url(); $url = explode("/",$url); // dd($url); $conditions = [ ['sys_id',$url[5]], ['tmp_id',$url[7]] ]; $conditions2 = [ ['s_id',$url[5]], ['t_id',$url[7]], ['status',1], ['active',1] ]; $conditions3 = [ ['user_id',Auth::user()->id], ['tmpt_id',$url[7]], ['syst_id',$url[5]] ]; $check = Link::where($conditions)->get(); $checkIfAlreadyResponded = Answer::where($conditions3)->first(); $qstnn_id = Questionnaire::select('id','instruction')->where([['s_id',$url[5]],['t_id',$url[7]]])->first(); if(!empty($check[0])){ if(!$checkIfAlreadyResponded){ $questions = Template::select('q_id')->where('id',$url[7])->get(); $questionnaire = array_map('intval',json_decode($questions[0]->q_id)); $system_title = System::select('system_name')->where('id',"=",$url[5])->get(); foreach($questionnaire as $row){ $questions = Questions::select('title')->where('id',$row)->get(); $questionsArr['questions'][] = [ 'title' => $questions[0]->title, 'qst_id' => $row ]; } $s_id = $url[5]; $t_id = $url[7]; $q_id = $qstnn_id->id; $instruction = $qstnn_id->instruction; return view('users.verify',compact('questionsArr','t_id','s_id','q_id','system_title','instruction'))->with(['page_title' => $page_title]); } else { return view()->make('message.error',['message' => '<center><h1>You responded already!</h1></center>'])->with(['page_title' => $page_title]); } } else { abort(404); } } else { session(['url.intended' => url()->current()]); return redirect('userlogin')->with(['disclaimer'=>$disclaimer]); } } public function getAnswer(Request $request){ $arr = json_decode($request->stars); $result = []; foreach ($arr as $subArr) { $index0 = $subArr[0]; if (!isset($result[$index0])) { $result[$index0] = $subArr; } else { $result[$index0] = $subArr; } } $result = array_values($result); usort($result, function($a, $b) { return $a[0] - $b[0]; }); $result = array_values($result); // dd($result); $qst = []; $ans = []; // dd($result); foreach($result as $row){ $qsts = $row[0]; $qst[] = $qsts; } foreach($result as $row){ $ansr = $row[1]; $ans[] = $ansr; } // foreach($result as $row){ $answer = Answer::insertGetId([ 'user_id' => Auth::user()->id, 'tmpt_id' => $request->t_id, 'syst_id' => $request->s_id, 'qstnn_id' => $request->q_id, 'qst_id' => json_encode($qst), 'rating' => json_encode($ans), 'comment' => $request->comment ]); // } $agent = new Agent(); if($agent->isDesktop()){ DB::table('device_access')->where('id',1) ->increment('pc',1); } if($agent->isMobile()){ DB::table('device_access')->where('id',1) ->increment('mobile',1); } if($agent->isTablet()){ DB::table('device_access')->where('id',1) ->increment('tablet',1); } $email = $this->emailResponse($answer); return response()->json(['message'=>"Success"],200); // if($email == 1){ // return response()->json(['message'=>"success"],200); // } else { // return response()->json(['message'=>"error"],403); // } } public function employeeLogin(Request $request){ // dd($request->all()); $request['type'] = "ratee"; $request->validate([ 'f_name' => 'required|string|max:20', 'l_name' => 'required|string|max:20', 'email' => 'required|string|max:35|ends_with:@autohubgroup.com', 'comp_id' => 'required|integer' ],[ 'f_name.required' => "First Name is required", 'f_name.string' => "First Name should not contain any integer value", 'l_name.required' => "Last Name is required", 'l_name.string' => "Last Name should not contain any integer value", 'email.required' => "Email is required", 'comp_id.integer' => "Please choose a company" ]); $user = User::select('id')->where([['f_name',"=",$request->f_name],['l_name',"=",$request->l_name], ['email',"=",$request->email]])->first(); if(empty($user)){ $request->validate([ 'f_name' => 'required|string|max:20', 'l_name' => 'required|string|max:20', 'email' => 'required|string|max:35|ends_with:@autohubgroup.com|unique:users,email', 'comp_id' => 'required|integer' ],[ 'f_name.required' => "First Name is required", 'f_name.string' => "First Name should not contain any integer value", 'l_name.required' => "Last Name is required", 'l_name.string' => "Last Name should not contain any integer value", 'email.required' => "Email is required", 'email.unique' => "This email has been registered already", 'comp_id.integer' => "Please choose a company" ]); $user = User::create([ 'f_name' => ucfirst(strtolower($request->f_name)), 'l_name' => ucfirst(strtolower($request->l_name)), 'email' => $request->email, 'comp_id' => $request->comp_id, 'password' => " ", 'type' => "ratee" ]); Auth::login($user); } else { Auth::login($user); } $rdr = explode("/",session('url.intended')); $link = "/".$rdr[3]."/".$rdr[4]."/".$rdr[5]."/".$rdr[6]."/".$rdr[7]; return response()->json($link); } public function emailResponse($answer){ $result = Answer::findOrFail($answer); $questions = json_decode($result->qst_id); $qs = []; $template = Template::findOrFail($result->tmpt_id); $user = Auth::user()->l_name . ", " . Auth::user()->f_name; $info = [ 'template' => $template['title'], 'user' => $user, 'email' => Auth::user()->email ]; foreach($questions as $key => $id){ $title = Questions::select('title')->where('id',$id)->first(); $ans = json_decode($result->rating); // dd($ans); $qs[] = [$title['title'],$ans[$key]]; } $to = Auth::user()->email; $subject = "Survey Response"; $headers = "From: Autohub Group of Companies Inc.\r\n"; $headers .= "Content-Type: text/html\r\n"; $message = view('mail.response',['qs' => $qs,'info' => $info, 'comment' => $result->comment])->render(); try { $emailResponse = mail($to, $subject, $message, $headers); if ($emailResponse) { // Email sent successfully $this->emailResponseManagement(Auth::user()->id, $result->id, Auth::user()->email, NOW(), 1); return 1; } else { // Email failed to send $this->emailResponseManagement(Auth::user()->id, $result->id, Auth::user()->email, NOW(), 0); return 0; } } catch (\Exception $e) { // Handle the exception $errorMessage = $e->getMessage(); $this->emailResponseManagement(Auth::user()->id, $result->id, Auth::user()->email, NOW(), 0); return 0; } } public function emailResponseManagement($id,$answer,$email,$created_at,$status){ DB::table('email_responses')->insert([ 'user' => $id, 'ans' => $answer, 'email' => $email, 'created_at' => $created_at, 'status' => $status ]); } public function resendEmail(Request $request){ $result = DB::table('email_responses')->where('id',$request->id)->first(); //get the info of the failed email response // dd($result); $res = Answer::findOrFail($result->ans); $questions = json_decode($res->qst_id); $qs = []; $template = Template::findOrFail($res->tmpt_id); $user = User::where('id',$res->user_id)->first(); $info = [ 'template' => $template['title'], 'user' => $user->f_name . " " . $user->l_name, 'email' => $request->email ]; foreach($questions as $key => $id){ $title = Questions::select('title')->where('id',$id)->first(); $ans = json_decode($res->rating); // dd($ans); $qs[] = [$title['title'],$ans[$key]]; } $to = $request->email; $subject = "Survey Response"; $headers = "From: Autohub Group of Companies Inc.\r\n"; $headers .= "Content-Type: text/html\r\n"; $message = view('mail.response',['qs' => $qs,'info' => $info, 'comment' => $res->comment])->render(); try { $emailResponse = mail($to, $subject, $message, $headers); if ($emailResponse) { // Email sent successfully $this->emailResponseManagement($user->id, $res->id, $request->email, NOW(), 1); return 1; } else { // Email failed to send $this->emailResponseManagement($user->id, $res->id, $request->email, NOW(), 0); return 0; } } catch (\Exception $e) { // Handle the exception $errorMessage = $e->getMessage(); $this->emailResponseManagement($user->id, $res->id, $request->email, NOW(), 0); return 0; } } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings