<?php namespace App\Libs\Composers;

use App\Libs\Support\Sanitizer\Sanitizer;
use Illuminate\Support\Facades\Validator;

class SearchComposer
{
    public function compose($view)
    {
        $sanitizer = new Sanitizer(['search' => request()->input('q')], ['search' => 'strip_tags|xss_clean|trim']);
        $sanitizedData = $sanitizer->sanitize();
        $searchString = $sanitizedData['search'];

        $validator = Validator::make(
            request()->all(),
            array(
                'g' => 'in:resources,news,clients,solutions,projects'
            )
        );
        if ($validator->fails()) {
            $group = null;
        } else {
            $group = request()->get('g');
        }
        $website = \Localization::getWebsite();
        $searchGroups = $website->getSearchGroups($group);

        $searchCount = $website->searchCount($searchString, false, $searchGroups);

        $view->with(array(
            'searchString' => $searchString,
            'searchCount' => $searchCount,
            'group' => $group
        ));
    }
}
