Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
quiz_audit_management
/
app
/
Http
/
Controllers
/
Api
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
QuizController.php
| Size :
37.32
KB
Copy
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\ActivityLog; use App\QuizResult; use App\User; use App\Price; use App\ErrorQuizApplicant; use Maatwebsite\Excel\Facades\Excel; use App\Exports\ApplicantExport; use Log; use DrewM\MailChimp\MailChimp; class QuizController extends Controller { public function nextStep(Request $request){ $base_url = config('app.url'); // You can get all informations Log::critical("------------------"); Log::critical($request->all()); Log::critical("------------------"); $json = config('constants.main_json')['questions']; // Get applicant by session_id if(isset($request['session_id'])){ $session_id = $request->session_id; $applicant = QuizResult::where('session_id',$session_id)->first(); }else{ $session_id = uniqid(); $applicant = QuizResult::where('session_id',$session_id)->first(); while ($applicant) { $session_id = uniqid(); $applicant = QuizResult::where('session_id',$session_id)->first(); } $applicant = QuizResult::create(['session_id' => $session_id,'entity_json' => '[{"answers": []}]','source'=>'manychat']); } $order = isset($request->order) ? $request->order+1 : 0; if($request->answer_value != null && $request->current_step != null){ $applicant_json = json_decode($applicant->entity_json, 1); // dd($request->all()); if(isset($request->answer_value['fields']) && isset($applicant_json[$request->current_step]['answers'][0])){ $fields = $applicant_json[$request->current_step]['answers'][0]['fields']; $fields = array_merge($fields, $request->answer_value['fields']); $answer = $request->answer_value; $answer['fields'] = $fields; $applicant_json[$request->current_step]['answers'][0] = $answer; }else{ $applicant_json[$request->current_step]['answers'][0] = $request->answer_value; } $applicant_json[$request->current_step]['order'] = $order; $applicant->entity_json = json_encode($applicant_json); $applicant->save(); } // Get next step by condition $quiz_obj = json_decode($applicant->entity_json, 1); $type = ''; if(isset($request['current_step'])){ foreach($json[$request->current_step]['next_step'] as $step){ $step['condition'] = str_replace('has_key', '\has_key', $step['condition']); $step['condition'] = str_replace('quiz_obj', '\$quiz_obj', $step['condition']); $eval = true; if(eval("return function_exists('has_key');")){ $eval = false; } if($eval){ $has_key = " function has_key(\$string){ \$quiz_obj = json_decode('".$applicant->entity_json."',1); try{ return eval('return '.\$string.';'); }catch(\Exception \$e){ return false; } } "; }else{ $has_key = ''; } Log::critical('Step eval: '. $has_key.' return '.$step['condition'].";"); if(eval($has_key.' return '.$step['condition'].";")){ $next_step = $step['destination']; break; } } if($json[$request->current_step]["step_type"] == "form" && isset($request["form_key"]) && array_key_exists($request->form_key+1,$json[$request->current_step]['answers'][0]['fields']) || isset($json[$request->current_step]['is_contact_data'])){ $next_step = $request->current_step; } while(isset($json[$next_step]['facebook_skip']) && $json[$next_step]['facebook_skip'] ){ foreach($json[$next_step]['next_step'] as $step){ $step['condition'] = str_replace('has_key', '\has_key', $step['condition']); $step['condition'] = str_replace('quiz_obj', '\$quiz_obj', $step['condition']); $eval = true; if(eval("return function_exists('has_key');")){ $eval = false; } if($eval){ $has_key = " function has_key(\$string){ \$quiz_obj = json_decode('".$applicant->entity_json."',1); try{ return eval('return '.\$string.';'); }catch(\Exception \$e){ return false; } } "; }else{ $has_key = ''; } Log::critical('Step eval: '. $has_key.' return '.$step['condition'].";"); if(eval($has_key.' return '.$step['condition'].";")){ $next_step = $step['destination']; break; } } } }else{ $next_step = config('constants.main_json')['start_question']; } $subtitle = ''; // Get title by condition $type = $json[$next_step]['step_type']; foreach($json[$next_step]['title'] as $title_json){ if(strpos($title_json['condition'], 'scope') === false){ $title_json['condition'] = str_replace('has_key', '\has_key', $title_json['condition']); $title_json['condition'] = str_replace('quiz_obj', '\$quiz_obj', $title_json['condition']); $eval = true; if(eval("return function_exists('has_key');")){ $eval = false; } if($eval){ $has_key = " function has_key(\$string){ \$quiz_obj = json_decode('".$applicant->entity_json."',1); try{ return eval('return '.\$string.';'); }catch(\Exception \$e){ return false; } } "; }else{ $has_key = ''; } if(eval($has_key.' return '.$title_json['condition'].";")){ $title =str_replace("\n","", str_replace("\t","",trim(preg_replace("/\s+/", ' ', $title_json['title'])))); if(isset($title_json['subtitle'])){ $subtitle = str_replace("\n","",str_replace("\t","",$title_json['subtitle'])); } break; }else{ $title = $title_json['title']; } } } preg_match("/(?:\#)([^#]+)(?=#|$)/", $title, $title_variables); if(sizeof($title_variables) > 0){ $variable = str_replace("quiz_obj", "\$quiz_obj",$title_variables[1]); $variable = eval( "\$quiz_obj = json_decode('".$applicant->entity_json."',1); return ".$variable.";"); $title = str_replace("#".$title_variables[1]."#", $variable, $title); } // if(strlen($title) > 80){ // $temp_title = strip_tags($title); // while(strlen($temp_title) > 0){ // if(strlen($temp_title) > 60){ // $index = strpos($temp_title, ' ', 60); // if($index > 70){ // $index = strpos($temp_title, ' ', 50); // } // $title_temp = mb_substr($temp_title, 0, $index); // if( !$index ) { // $titles[] = $temp_title; // $temp_title = ''; // }else{ // $titles[] = $title_temp; // $temp_title = mb_substr($temp_title,$index,strlen($title)); // } // }else{ // $titles[] = $temp_title; // $temp_title = ''; // } // } // foreach($titles as $split_title){ // if($split_title != ''){ // $messages[] = ['type' => 'text', 'text' => trim(strip_tags($split_title),"\t"), 'buttons'=> []]; // } // } // }else{ // $messages[] = ['type' => 'text', 'text' => trim(strip_tags($title),"\t"), 'buttons'=> []]; // } $messages[] = ['type' => 'text', 'text' => trim(strip_tags($title),"\t"), 'buttons'=> []]; $subtitle = strip_tags($subtitle); if($subtitle != ''){ $messages[] = ['type' => 'text', 'text' => trim($subtitle,"\t"), 'buttons'=> []]; } // if(strlen($subtitle) > 80){ // $temp_subtitle = $subtitle; // while($temp_subtitle !== ''){ // if(strlen($temp_subtitle) > 60){ // $index = strpos($temp_subtitle, ' ', 60); // if($index > 62){ // $index = strpos($temp_subtitle, ' ', 50); // } // $subtitle_temp = mb_substr($temp_subtitle, 0, $index); // if( !$index ) { // $titles[] = $temp_subtitle; // $temp_subtitle = ''; // }else{ // $subtitles[] = $subtitle_temp; // $temp_subtitle = str_replace($subtitle_temp,'',$temp_subtitle); // } // }else{ // $subtitles[] = $temp_subtitle; // $temp_subtitle = ''; // } // } // foreach($subtitles as $split_subtitle){ // if($split_subtitle != ''){ // $messages[] = ['type' => 'text', 'text' => $split_subtitle, 'buttons'=> []]; // } // } // }else if($subtitle != ''){ // $messages[] = ['type' => 'text', 'text' => trim(strip_tags($subtitle),"\t"), 'buttons'=> []]; // } // if($json[$next_step]['description'] != null){ // if(strlen($json[$next_step]['description']) > 80){ // $temp_desc = $json[$next_step]['description']; // while($temp_desc !== ''){ // if(strlen($temp_desc) > 60){ // $index = strpos($temp_desc, ' ', 60); // $description_temp = mb_substr($temp_desc, 0, $index); // if( !$index ) { // $descriptions[] = $temp_desc; // $temp_desc = ''; // }else{ // $descriptions[] = $description_temp; // $temp_desc = str_replace($description_temp,'',$temp_desc); // } // }else{ // $descriptions[] = $temp_desc; // $temp_desc = ''; // } // } // foreach($descriptions as $split_description){ // if($split_description != ''){ // $messages[] = ['type' => 'text', 'text' => strip_tags($split_description), 'buttons'=> []]; // } // } // }else{ // $messages[] = ['type' => 'text', 'text' => strip_tags($json[$next_step]['description']), 'buttons'=> []]; // } // } if($json[$next_step]['description'] != null){ $messages[] = ['type' => 'text', 'text' => strip_tags($json[$next_step]['description']), 'buttons'=> []]; } if($json[$next_step]['image'] != null){ $messages[] = ['type' => 'image', 'url' => $base_url."images/".$json[$next_step]['image'], 'buttons'=> []]; } // Pentru video-uri ca sa mearga trebuie introdus un url catre fisierul media ex: https://examplelink.com/video.mpeg // if($json[$next_step]['video'] != null){ // $messages[] = ['type' => 'video', 'url' => "https://popalexandru06.wistia.com/medias/".$json[$next_step]['video'], 'buttons'=> []]; // } $buttons = []; // If answers have images we need to use CARDS otherwise we will use quiz_replies $use_quick_replies = true; foreach($json[$next_step]['answers'] as $answer){ $buttons[] = array ( 'type' => 'dynamic_block_callback', "webview_size"=> "full", 'caption' => $answer['title'], 'url' => $base_url.'api/nextStep', 'method' => 'post', 'headers' => array ( 'x-header' => 'value', ), 'payload' => array ( // 'next_step' => $json[$next_step]['next_step'][0]['destination'], 'answer_value' => [ "question" => $title, "title" => $answer['title'], "value" => $answer['value'], ], 'current_step' => $next_step, 'session_id' => $session_id, 'order' => $order, ), ); } // CARDS $elements_with_images = 0; $elements = array(); $second_elements = array(); foreach($json[$next_step]['answers'] as $key => $answer){ if($answer['image']){ $elements_with_images = $elements_with_images + 1; } $button = array ( 'type' => 'dynamic_block_callback', 'caption' => "Selecteaza", "webview_size"=> "full", 'url' => $base_url.'api/nextStep', 'method' => 'post', 'headers' => array ( 'x-header' => 'value', ), 'payload' => array ( // 'next_step' => $json[$next_step]['next_step'][0]['destination'], 'current_step' => $next_step, 'answer_value' => [ "question" => $title, "title" => $answer['title'], "value" => $answer['value'] ], 'session_id' => $session_id, 'order' => $order, ), ); $img = $answer['image'] ? $base_url."images/".$answer['image'] : ""; if($key < 4){ // asta e un hack pt moment ca te lasa maxim 4 poze if(count($json[$next_step]['answers']) == 5 && $key > 2){ $second_elements[] = array ( 'title' => strlen($answer['title']) < 80 ? $answer['title'] : mb_substr($answer['title'],0,77)."...", 'subtitle' => $answer['description'], 'image_url' => $img, 'buttons' => [$button], ); }else{ $elements[] = array ( 'title' => strlen($answer['title']) < 80 ? $answer['title'] : mb_substr($answer['title'],0,77)."...", 'subtitle' => $answer['description'], 'image_url' => $img, 'buttons' => [$button], ); } }else{ $second_elements[] = array ( 'title' => strlen($answer['title']) < 80 ? $answer['title'] : mb_substr($answer['title'],0,77)."...", 'subtitle' => $answer['description'], 'image_url' => $img, 'buttons' => [$button], ); } } if($elements_with_images == sizeof($json[$next_step]['answers'])){ if(array_key_exists("facebook_display",$json[$next_step]) && $json[$next_step]['facebook_display'] == 'cards'){ // Pentru varianta de carduri $messages[] = array ( 'type' => 'cards', 'elements' => $elements, 'image_aspect_ratio' => 'square', ); if(sizeof($second_elements) > 1){ $messages[] = array ( 'type' => 'cards', 'elements' => $second_elements, 'image_aspect_ratio' => 'square', ); } }else{ // Pentru varianta de lista $messages[] = array ( 'type' => 'list', 'elements' => $elements, 'image_aspect_ratio' => 'compact', ); if(sizeof($second_elements) > 1){ $messages[] = array ( 'type' => 'list', 'elements' => $second_elements, 'image_aspect_ratio' => 'compact', ); } } $use_quick_replies = false; }elseif(sizeof($json[$next_step]['answers']) > 1){ // lista sau cardurile pot fi folosite doar daca sunt cel putin 2 raspunsuri la intrebare $messages[] = array ( 'type' => 'list', 'elements' => $elements, 'image_aspect_ratio' => 'compact', ); if(!empty($second_elements)){ $messages[] = array ( 'type' => 'list', 'elements' => $second_elements, 'image_aspect_ratio' => 'compact', ); } $use_quick_replies = false; } $mark_as_done = isset($request['mark_as_done']) ? $request->mark_as_done : false; if($type == "form" && !$mark_as_done){ if(isset($json[$next_step]['is_contact_form'])){ // Cerem adresa de email if($request->current_step != $next_step){ $messages = []; $messages[] = [ 'type' => 'text', 'text' => 'Tot ce mai ai de facut este sa ne lasi adresa de email', 'buttons'=> [] ]; $messages[] = [ 'type' => 'text', 'text' => 'si numarul de telefon', 'buttons'=> [] ]; $messages[] = [ 'type' => 'text', 'text' => 'Te rog sa introduci adresa de email', 'buttons'=> [] ]; $payload = [ 'current_step' => $next_step, 'form_key' => 0, // al catelea field e "answer_value"=>[ "question" => $title, "title" => $json[$next_step]['answers'][0]['title'], "value" => $json[$next_step]['answers'][0]['value'], "fields" => [ [ "name" => "first_name", "type" => "text", "required" => true, "placeholder" => "Prenume", "value" => "{{first_name}}", "options" => null ], [ "name" => "last_name", "type" => "text", "required" => true, "placeholder" => "Nume", "value" => "{{last_name}}", "options" => null ], [ "name" => 'email', "placeholder" => "Email", "value" => "{{last_input_text}}", ] ] ], 'session_id' => $session_id, 'order' => $order, ]; // Cerem numarul de telefon }else{ $messages = []; $messages[] = [ 'type' => 'text', 'text' => 'Te rog sa introduci numarul tau de telefon', 'buttons'=> [] ]; $payload = [ 'current_step' => $next_step, 'form_key' => 0, // al catelea field e 'mark_as_done' => true, "answer_value"=>[ "question" => $title, "title" => $json[$next_step]['answers'][0]['title'], "value" => $json[$next_step]['answers'][0]['value'], "fields" => [ [ "name" => "phone", "placeholder" => "Telefon", "value" => "{{last_input_text}}", ], ], ], 'session_id' => $session_id, 'order' => $order, ]; } }else if($json[$request->current_step]["step_type"] == "form" && isset($request["form_key"]) && isset($json[$request->current_step]['answers'][0]['fields'][$request->form_key+1])){ $key = $request->form_key + 1; $next_step = $request->current_step; $messages = []; $messages[] = [ 'type' => 'text', 'text' => isset($json[$next_step]['answers'][0]['fields'][$key]['facebook_placeholder']) ? $json[$next_step]['answers'][0]['fields'][$key]['facebook_placeholder'] : $json[$next_step]['answers'][0]['fields'][$key]['placeholder'], 'buttons'=> [] ]; $payload = [ 'current_step' => $next_step, 'form_key' => $key, // al catelea field e "answer_value"=>[ "question" => $title, "title" => $json[$next_step]['answers'][0]['title'], "value" => $json[$next_step]['answers'][0]['value'], "fields" => [ [ "name" => $json[$next_step]['answers'][0]['fields'][$key]['name'], "placeholder" => $json[$next_step]['answers'][0]['fields'][$key]['placeholder'], "value" => "{{last_input_text}}", ] ] ], 'session_id' => $session_id, 'order' => $order, ]; }else{ $messages[] = [ 'type' => 'text', 'text' => isset($json[$next_step]['answers'][0]['fields'][0]['facebook_placeholder']) ? $json[$next_step]['answers'][0]['fields'][0]['facebook_placeholder'] : $json[$next_step]['answers'][0]['fields'][0]['placeholder'], 'buttons'=> [] ]; $payload = [ 'current_step' => $next_step, 'form_key' => 0, // al catelea field e "answer_value"=>[ "question" => $title, "title" => $json[$next_step]['answers'][0]['title'], "value" => $json[$next_step]['answers'][0]['value'], "fields" => [ [ "name" => $json[$next_step]['answers'][0]['fields'][0]['name'], "placeholder" => $json[$next_step]['answers'][0]['fields'][0]['placeholder'], "value" => "{{last_input_text}}", ] ] ], 'session_id' => $session_id, 'order' => $order, ]; } // var_dump(print_r($json[$next_step],1)); $response = array ( 'version' => 'v2', 'content' => array ( 'messages' => $messages, 'actions' => [], "external_message_callback" => [ "url" => $base_url.'api/nextStep', "method" => "post", "headers" => [ "x-header" => "value" ], "payload" => $payload, ] ), ); }else if(!$mark_as_done){ $response = array ( 'version' => 'v2', 'content' => array ( 'messages' => $messages, 'actions' => [], 'quick_replies' => $use_quick_replies ? $buttons : [], ), ); }else{ $messages = [ [ 'type' => 'text', 'text' => "Urmeaza linkul urmator pentru a vedea pretul", 'buttons'=> [] ], [ 'type' => 'text', 'text' => url('/')."/result/".$session_id, 'buttons'=> [] ] ]; $response = array ( 'version' => 'v2', 'content' => array ( 'messages' => $messages, 'actions' => [], // "external_message_callback" => [ // "url" => $base_url.'api/nextStep', // "method" => "post", // "headers" => [ // "x-header" => "value" // ], // "payload" => $payload, // ] ), ); } Log::critical('$response'); Log::critical($response); Log::critical('step_type'); Log::critical($type); return response()->json($response); } public function getQuiz(){ $json = json_encode(config('constants.main_json')); $crm_user = User::where('role','admin')->first(); return response()->json([ 'json' => $json, 'reset_button' => $crm_user->reset_button, ]); } public function getApplicantsNumber(){ $applicants = 1321+QuizResult::count(); return response()->json(["applicants_no" => $applicants], 200); } public function quizResult(Request $request){ $quiz_result = QuizResult::where('session_id',$request->session_token)->first(); $json = json_decode($request->entity_json, true); if($quiz_result){ $quiz_result->update([ 'entity_json' => $request->entity_json, 'contact_data' => isset($json[29]) ? 1 : 0, 'referral_id' => (isset($json[29]) && isset($request->referral_id)) ? $request->referral_id : null ]); }else{ QuizResult::firstOrCreate([ 'entity_json' => $request->entity_json, 'session_id' => $request->session_token, 'contact_data' => isset($json[29]) ? 1 : 0, 'referral_id' => (isset($json[29]) && isset($request->referral_id)) ? $request->referral_id : null ]); } return response()->json("Ati salvat cu succes!"); } public function saveLog(Request $request){ ActivityLog::updateOrCreate([ 'question' => $request->question, 'session_id' => $request->session_token, ],[ 'step_in' => $request->step_in ? $request->step_in : 0, 'step_out' => $request->step_out ? $request->step_out : 0, 'answer' => $request->answer, 'time' => $request->time, ]); return response()->json("Ati salvat cu succes!"); } public function getSessionToken(){ $session_token = uniqid(); $exist_random_code = QuizResult::where('session_id',$session_token)->first(); while ($exist_random_code) { $session_token = uniqid(); $exist_random_code = QuizResult::where('session_id',$session_token)->first(); } return response()->json($session_token); } public function finalCalculation(Request $request){ $quiz_result = QuizResult::where('session_id',$request->session_token)->first(); $json = json_decode($request->entity_json, true); $crm_user = User::where('role','admin')->first(); $jsonAnswers = config('json_answers'); $points = 0; $answers = []; foreach($json as $key => $question){ // dd($key, $question, $jsonAnswers); if(array_key_exists($key, $jsonAnswers)){ $points += $question['answers'][0]['value']; // get the answer from json_answers if the question is 'Fals' if($question['answers'][0]['title'] == 'Fals'){ $answers[] = $jsonAnswers[$key]; } } } // check the position of your points between all quiz answers $distinctScores = QuizResult::where('contact_data', 1)->select('entity_value')->distinct()->get(); $peopleBeforeYou = $distinctScores->where('entity_value', '>', $points)->count(); // list of variables for last page and mail $variable_list = [ 'points_position' => $points == 0 ? $distinctScores->count() : ($peopleBeforeYou != 0 ? $peopleBeforeYou : 1), 'totalPeopleQuiz' => $distinctScores->count(), 'application_no' => 1321+QuizResult::count(), 'points' => $points, 'answers' => $answers, ]; $applicant_email = $json[29]['answers'][0]['fields'][2]['value']; if($quiz_result->mail_sent == 0){ // Mail to izotec // quiz_results_mail($json,0,$applicant_email); // Mail to client // quiz_results_mail_to_client($variable_list,$applicant_email); } $quiz_result->update([ 'entity_value' => $points, 'mail_sent' => 1, ]); // Sync with Active Campaign $applicant = [ 'first_name' => $json[29]['answers'][0]['fields'][0]['value'], 'last_name' => $json[29]['answers'][0]['fields'][1]['value'], 'email' => $json[29]['answers'][0]['fields'][2]['value'], 'phone' => $json[29]['answers'][0]['fields'][3]['value'], 'numar_angajati' => $json[1001]['answers'][0]['fields'][0]['value'], 'cifra_afaceri' => $json[1001]['answers'][0]['fields'][1]['value'], 'punctaj_audit' => $points ]; sync_contacts_with_crm($applicant,$json,$crm_user); return response()->json($variable_list); } public function fetchMailchimpListings(Request $request){ $mailchimp = new MailChimp($request->mailchimp_api_key); $admin_user = User::where('role','admin')->first(); $admin_user->update([ 'mailchimp_api_key' => $request->mailchimp_api_key == null ? '' : $request->mailchimp_api_key, ]); return response()->json(['lists' => $mailchimp->get('lists')]); } public function settings(Request $request){ $image = $request->file('image'); if($image){ $image->move(public_path('images'), 'fav.ico'); } $admin_user = User::where('role','admin')->first(); $admin_user->update([ 'has_crm' => ($request->has_crm == 'true' || $request->has_crm == 1) ? 1 : 0, 'crm_host' => $request->crm_host == null ? '' : $request->crm_host, 'crm_api_key' => $request->crm_api_key == null ? '' : $request->crm_api_key, 'reset_button' => ($request->reset_button == 'true' || $request->reset_button == 1) ? 1 : 0, 'pixel_api_key' => $request->pixel_api_key == null ? '' : $request->pixel_api_key, 'mailchimp_api_key' => $request->mailchimp_api_key == null ? '' : $request->mailchimp_api_key, 'has_mailchimp' => ($request->has_mailchimp == 'true' || $request->has_mailchimp == 1) ? 1 : 0, 'mailchimp_listing_id' => ($request->mailchimp_listing_id == null || $request->mailchimp_api_key == null) ? '' : $request->mailchimp_listing_id, 'pixel_api_key' => $request->pixel_api_key == null ? '' : $request->pixel_api_key, 'google_analytics_api_key' => $request->google_analytics_api_key == null ? '' : $request->google_analytics_api_key, 'crm_list_ids' => $request->crm_list_ids, ]); return response()->json("Ati actualizat cu succes!"); } public function quizFeedback(Request $request){ $quiz_result = QuizResult::where('session_id',$request->session_token)->first(); $quiz_result->update(['feedback' => $request->feedback]); return response()->json("Ati salvat cu succes!"); } public function sendErrorEmail(Request $request){ quiz_step_error(json_decode($request->entity_json,1), $request->session_id ); return response()->json('Success', 200); } public function storeErrorApplicant(Request $request){ ErrorQuizApplicant::updateOrCreate([ 'session_id' => $request->session_id ],[ 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'email' => $request->email, 'phone' => $request->phone, 'entity_json' => $request->entity_json ]); return response()->json(['message' => 'Success'],200); } public function getErrorApplicants(){ $errors = ErrorQuizApplicant::all(); return response()->json($errors, 200); } public function getErrorApplicant($id){ $error = ErrorQuizApplicant::findOrFail($id); return response()->json($error, 200); } public function exportResults(){ $filters = ''; if(isset($_GET['filter'])){ $filters = json_decode($_GET['filter'],1); } return Excel::download(new ApplicantExport($filters), 'export.xlsx'); } public function getGeolocations(Request $request){ $search = str_replace(' ', '+', strtolower($request->search)); $username = env('GEOLOCATION_USERNAME'); $url = "http://api.geonames.org/search?q=".$search."&country=&featureClass=P&continentCode=EU&fuzzy=0.6&username=".$username."&style=full"; try{ $response = simplexml_load_file($url); return response()->json($response, 200); }catch(\Exception $e){ return response()->json($e, 500); } } public function getQuizResultBySession($session_id){ $result = QuizResult::where('session_id', $session_id)->first(); return response()->json([ 'result' => $result, 'quiz' => [ "questions" => [ [ 'step_type' => 'calculations' ] ] ], ]); } public function sendEmailWithData(Request $request){ // $quiz_result = QuizResult::where('session_id',$request->session_token)->first(); // $json = json_decode($request->entity_json, true); // $crm_user = User::where('role','admin')->first(); // $price = $quiz_result->entity_value; // $discount = isset($discount) ? $discount : 0; // $final_price = isset($discount) ? $price - ($discount * $price / 100) : $price; // // round // $price = round($price); // $final_price = round($final_price); // // list of variables for last page and mail // $variable_list = [ // 'price' => $price, // 'final_price' => $final_price, // 'discount' => $discount, // ]; // $quiz_result = QuizResult::where('session_id',$request->session_token)->first(); // quiz_results_mail_to_client($variable_list,$request->email); return response()->json('Success'); } }
Back