<?php namespace App\Libs\Composers\CF;

use News;

class CfPressDetailComposer
{
    use \App\Libs\Composers\SidebarComposerTrait;

    public function compose($view)
    {
        $data = $view->getData();
        $parameters = $data['parameters'];
        $slug = last($parameters);

        $pressRelease = \PressRelease::full()
            ->with('media', 'document')
            ->where("slug", $slug)
            ->first();

        if (!$pressRelease) {
            abort(404);
        }

        if ($pressRelease->status != 'published') {
            $user = \Auth::guard('admin')->user();
            if (!$user) {
                abort(404);
            }
        }

        $metaData = new \stdClass();
        if (!empty($pressRelease->meta_title)) {
            $metaData->meta_title = $pressRelease->meta_title;
        } else {
            $metaData->meta_title = cut_string(strip_tags($pressRelease->title), 100);
        }
        if (!empty($pressRelease->meta_description)) {
            $metaData->meta_description = $pressRelease->meta_description;
        } else {
            $metaData->meta_description = cut_string(strip_tags($pressRelease->summary), 200);
        }
        $metaData->meta_keywords = $pressRelease->meta_keywords;

        $this->composeSidebar($view, \CfDefaultTemplateCfg::query());

        $view->with(array(
            'pressRelease' => $pressRelease,
            'metaData' => $metaData
        ));
    }
}
