136 lines
7.1 KiB
PHP
136 lines
7.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\LambdaRequest;
|
|
use App\Models\Library;
|
|
use App\Models\Session;
|
|
use App\Models\Sessionagenda;
|
|
use App\Models\Faculty;
|
|
use DB;
|
|
use PDF;
|
|
use Storage;
|
|
use Response;
|
|
class MicrositeController extends LocalController
|
|
{
|
|
public function contentlibrary($code, Request $request) {
|
|
$library = Library::where('code', $code)->first();
|
|
$library->library_values = json_decode($library->library_values);
|
|
$content_id = $request->input('id', false);
|
|
if(!$content_id) {
|
|
$content_id = $library->library_values[0]->id;
|
|
}
|
|
$content = LambdaRequest::getrequest('mag', 'magazine/details', ['id' => $content_id ], env('LAMBDA_ACCESS_TOKEN', 'default_value') );
|
|
//echo '<pre>'; print_r($library); exit;
|
|
return view('road.contentlibrary', ['library' => $library, 'content' => $content->data]);
|
|
}
|
|
|
|
public function analytics_view(Request $request) {
|
|
$post = $request->except('_token');
|
|
$post['ip'] = $request->ip();
|
|
$content = LambdaRequest::postrequest('mag', 'mag_media_views/create_multiple', $post, env('LAMBDA_ACCESS_TOKEN', 'default_value') );
|
|
return response()->json($content);
|
|
}
|
|
|
|
public function microsite($code, Request $request) {
|
|
list($type, $code) = explode('-', $code);
|
|
$session = (object)Session::where('code', $code)->first()->toArray();
|
|
$session->dates = json_decode($session->dates);
|
|
$session->faculty = explode('|', $session->faculty);
|
|
$session->faculty = array_filter($session->faculty, function($value) { return !is_null($value) && $value !== ''; });
|
|
$faculties = Faculty::whereIn('id', $session->faculty)->get();
|
|
$agendas = Sessionagenda::where('session_id', $session->id)->get();
|
|
//echo '<pre>'; print_r(['session' => $session, 'faculties' => $faculties]); exit;
|
|
return view($session->type.'.microsite', ['session' => $session, 'faculties' => $faculties, 'agendas' => $agendas]);
|
|
}
|
|
|
|
public function brochure($code, Request $request) {
|
|
if(Storage::disk('local')->has('public/brochure/'.$code.'.pdf') ) {
|
|
$headers = array('Content-Type: application/pdf',);
|
|
//echo storage_path().'/storage/brochure/'.$code.'.pdf'; exit;
|
|
return Response::download(storage_path().'/app/public/brochure/'.$code.'.pdf', 'brochure.pdf',$headers);
|
|
} else {
|
|
$session = (object)Session::where('code', $code)->first()->toArray();
|
|
$session->dates = json_decode($session->dates);
|
|
$session->faculty = explode('|', $session->faculty);
|
|
$session->faculty = array_filter($session->faculty, function($value) { return !is_null($value) && $value !== ''; });
|
|
$faculties = Faculty::whereIn('id', $session->faculty)->get();
|
|
$agendas = Sessionagenda::where('session_id', $session->id)->get();
|
|
//echo '<pre>'; print_r(['session' => $session, 'faculties' => $faculties]); exit;
|
|
//return view($session->type.'.brochure', ['session' => $session, 'faculties' => $faculties, 'agendas' => $agendas]);
|
|
|
|
$pdf = PDF::loadView($session->type.'.brochure', ['session' => $session, 'faculties' => $faculties, 'agendas' => $agendas])->setOptions(['defaultFont' => 'sans-serif', 'isHtml5ParserEnabled' => true, 'isRemoteEnabled' => true]);
|
|
if($session->type == 'casper' || $session->type == 'casper_clinic') {
|
|
$customPaper = array(0,0,500,750);
|
|
$pdf->setPaper($customPaper);
|
|
}
|
|
Storage::put('public/brochure/'.$code.'.pdf', $pdf->output());
|
|
return $pdf->download('brochure.pdf');
|
|
}
|
|
}
|
|
|
|
public function register($code, Request $request) {
|
|
$session = (object)Session::where('code', $code)->first()->toArray();
|
|
$session->dates = json_decode($session->dates);
|
|
$request->session()->put('session_type', $session->type);
|
|
return view($session->type.'.register', ['session' => $session]);
|
|
}
|
|
|
|
public function postregister($code, Request $request) {
|
|
$post = $request->except('_token');
|
|
$post['type_of_setup'] = implode(',', $post['type_of_setup']);
|
|
$post['position'] = 'india';
|
|
$post['session_code'] = $code;
|
|
//echo '<pre>'; print_r($post); exit;
|
|
$request->session()->put('session_code', $code);
|
|
$response = LambdaRequest::postrequest('ums', 'contact/create', $post, env('LAMBDA_ACCESS_TOKEN', 'default_value') );
|
|
if($response->status == 'success') {
|
|
$session = (object)Session::where('code', $code)->first()->toArray();
|
|
$client = new \GuzzleHttp\Client();
|
|
$text = 'Greetings ' . $post['name']."\n";
|
|
$text .= 'You have Successfully registered for Crest session "'.$session->number.' ('.$session->type.') "'."\n";
|
|
$text .= 'Please find the details below'."\n";
|
|
$text .= 'Venue: ' . $session->venue . "\n";
|
|
$text .= 'Address: ' . $session->address . "\n";
|
|
$text .= 'Timings:' . "\n";
|
|
$dates = json_decode($session->dates);
|
|
foreach($dates->date as $i => $date){
|
|
$text .= date("d M, Y", strtotime($date) ) . ' at ' . date("h:iA", strtotime($dates->start[$i]) ) .' - ' . date("h:iA", strtotime($dates->end[$i]) ) . "\n";
|
|
}
|
|
$text .= "\n" . 'You can use this chat as your self assistance for getting details, download your certificate etc.';
|
|
$res = $client->get('https://panel.rapiwha.com/send_message.php', ['query' => ['apikey' => 'Z4NXQUTBGV3P7D7W8OHX', 'number' => '91'.$post['phone'], 'text' => $text], 'timeout' => 10]);
|
|
$res = $res->getBody();
|
|
|
|
|
|
return redirect('/registersuccess')->withSuccess('Successfully registered!!');
|
|
} else {
|
|
return redirect('/register/'.$code)->withError('Some error occured, please try again later');
|
|
}
|
|
}
|
|
|
|
public function registersuccess(Request $request) {
|
|
$code = $request->session()->get('session_code');
|
|
$type = $request->session()->get('session_type');
|
|
return view('road.success', ['code' => $code, 'type' => $type]);
|
|
}
|
|
|
|
public function attendance($code, Request $request) {
|
|
$session = (object)Session::where('code', $code)->first()->toArray();
|
|
$session->dates = json_decode($session->dates);
|
|
$response = LambdaRequest::getrequest('ums', 'contact/get_all', ['source'=>'dynamodb', 'search' => json_encode(['session_code' => $code]), 'fields' => json_encode(['session_code', 'present']) ], env('LAMBDA_ACCESS_TOKEN', 'default_value') );
|
|
//echo '<pre>'; print_r($response); print_r($session); exit;
|
|
return view($session->type.'.attendance', ['session' => $session, 'doctors' => $response->data->items]);
|
|
}
|
|
|
|
public function attendancemark(Request $request) {
|
|
$post = $request->input();
|
|
$response = LambdaRequest::postrequest('ums', 'contact/update', ['id'=>$post['doctor'], 'present' => $post['present'], 'position' => 'india' ], env('LAMBDA_ACCESS_TOKEN', 'default_value') );
|
|
|
|
|
|
echo '<pre>'; print_r($response); exit;
|
|
}
|
|
|
|
|
|
|
|
}
|