<?php
use Eae\Exception\InvalidConfigurationException;
use Eae\Transformation\Transformer\PageTransformer;

class ApiController extends Controller{
    public function __construct()  {
        //$this->beforeFilter('csrf', array('on' => 'post'));
    }

    public function getPages($slug){
        $lang = getActiveLanguage();
        $wo = $websiteObject = WebsiteObject::select('website_objects.*')
            ->join(
                'website_objects_lang', 
                'website_objects.website_object_id', 
                '=', 
                'website_objects_lang.website_object_id')
            ->where('lang_slug', $slug)
            ->where('status', 'published')
            ->where('object_type', 'Entry')
            ->where('wo_language_id', $lang)
            ->first();
        if (!$wo) {
            throw new ApiHttpException(404, 'not_found');
        }
        $page = Entry::with(['pageSections' => function ($query) {
            $query->orderBy('position', 'asc')
                ->with(['contentModules' => function ($query) {
                    $query->orderBy('position', 'asc')
                        ->with(['infographics' => function ($query) {
                            $query->orderBy('position', 'asc');
                        }]);
                }]);
            }, 'archives' => function ($query) {
                $query->orderBy('position', 'asc');
            }])->find($wo->object_id);

        if (!$page) {
            throw new ApiHttpException(404, 'not_found');
        }
        return TransformService::transformItem(
            $page, 
            new PageTransformer)->toArray();
    }
}
