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 '
'; 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 '
'; 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 '
'; 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 '
'; 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 '
'; 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 '
'; print_r($response); exit;
    }

    
    
}