<?php

namespace App\Repositories;

use App\Repositories\RepositoryAbstract;

/**
 *  request pages items from directus
 *
 *  @author Björn Hase, Tentakelfabrik
 *  @license http://opensource.org/licenses/MIT The MIT License
 *  @link https://gitea.tentakelfabrik.de/Tentakelfabrik/super-gear-directus
 *
 */

class PageRepository extends RepositoryAbstract
{
    /** endpoint */
    protected $endpoint = 'pages';

    /**
     *  find single page with a slug,
     *  page must be published
     *
     *  @param  string $slug
     *  @return array
     */
    public function findOneBySlug($slug)
    {
        // if slug not set, search for empty slug
        if (!$slug) {
            $slug = [ '_null' => 'true' ];
        } else {
            $slug = [ '_eq' => $slug ];
        }

        return $this->queryBuilder
            ->fields([
                'title', 'slug', 'content', 'view', 'meta',
                'media_teaser.*',
                'media_hero.*'
            ])
            ->aliases('view', 'template')
            ->filter([
                'status' => 'published',
                'slug' => $slug
            ])
            ->findOne();
    }
}