<?php

namespace App\Http\Controllers;


use Illuminate\Routing\Controller as BaseController;
use Analytics;
use Spatie\Analytics\Period;
use Illuminate\Http\Request;
use DateTime;
use Illuminate\Support\Facades\Validator;

class ReportController extends BaseController
{

    public function index(Request $request)
	{
        $validator = Validator::make($request->all(), [
            'start_date'=>'required',
            'end_date' => 'required|after_or_equal:start_date',
        ]);
        if ($validator->fails()) {
            return response()->json( $validator->errors(),422);
        }
        else{
        $startDate = new DateTime( $request->start_date);
		$endDate = new DateTime( $request->end_date);
		$period = Period::create($startDate, $endDate);
		
		if($request->report_for == "visitor_pageview")
		{
            $reportdata = Analytics::fetchVisitorsAndPageViews($period);
            // dd($reportdata);
			return view('googlereports.partials.visitors_pageviews', compact('reportdata'));	
        }

        if($request->report_for == "total_visitor_pageview")
		{
            $reportdata = Analytics::fetchTotalVisitorsAndPageViews($period);
			return view('googlereports.partials.total_visitors_pageviews', compact('reportdata'));	
        }
        
        if($request->report_for == "visited_pages")
		{
            $reportdata = Analytics::fetchMostVisitedPages($period,20);
			return view('googlereports.partials.most_visited_pages', compact('reportdata'));	
        }
       
        
        if($request->report_for == "top_referrers")
		{
            $reportdata = Analytics::fetchTopReferrers($period,20);
			return view('googlereports.partials.top_referrers', compact('reportdata'));	
        }
        
        if($request->report_for == "user_types")
		{
            $reportdata = Analytics::fetchUserTypes($period,20);
			return view('googlereports.partials.user_types', compact('reportdata'));	
        }
        
        if($request->report_for == "top_browsers")
		{
            $reportdata = Analytics::fetchTopBrowsers($period,20);
			return view('googlereports.partials.top_browsers', compact('reportdata'));	
        }
    }

	}	


}