/**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     view()->composer('frontend.layout.header', function ($view) {
         $view->with('user', Auth::user());
     });
     view()->composer('frontend.partials.domainsTree', function ($view) {
         $domains = Domain::getCurrentDomains();
         $tree = Domain::getTree(Domain::getDomainsForTree($domains));
         $view->with(['tree' => $tree, 'domains' => $tree[1]['subdomains']]);
     });
     view()->composer('frontend.partials.domainsTreeForReports', function ($view) {
         $domains = Domain::getCurrentDomains();
         $tree = Domain::getTree(Domain::getDomainsForTree($domains));
         $view->with(['tree' => $tree, 'domains' => $tree[1]['subdomains']]);
     });
     Document::deleted(function ($document) {
         $fileToDelete = UploadedFile::where('id', '=', $document['uploaded_file_id'])->get();
         $fileToDelete = $fileToDelete[0]['file_name'];
         File::delete(storage_path() . '/documents/' . $fileToDelete);
         $document->file()->delete();
         return true;
     });
 }
 public function getReports(Request $request)
 {
     $domainsForReports = Domain::getCurrentDomains();
     if ($request->domain) {
         $domain = $domainsForReports->find($request->domain);
         if ($domain) {
             $domainsForReports = collect([$domain]);
         }
     }
     $reports = Report::bySearchTerm($request->report_search)->byDomainIds($domainsForReports->lists('id')->toArray())->orderBy('id', 'desc')->where(function ($query) use($request) {
         if ($request->report_type) {
             $query = $query->orWhere('report_type', $request->report_type);
         }
     })->paginate(5);
     return view('frontend.pages.reports', ['reports' => $reports, 'report_type' => $request->report_type, 'report_search' => $request->report_search, 'domain' => $request->domain]);
 }