<?php

declare(strict_types=1);

namespace App\Controller\Domain\Majestic;

use App\Service\Domain\MajesticTopicService;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\View\View;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class TopicController extends FOSRestController
{
    private $service;

    public function __construct(MajesticTopicService $service)
    {
        $this->service = $service;
    }

    /**
     * Retrieves a collection of Topic resource.
     *
     * @Rest\Get("/domain/topic/grid")
     *
     * @return View
     */
    public function getAction(Request $request): View
    {
        $query = $request->get('q') ?? '';
        $items = $this->service->search($query);

        return View::create(['data' => $items], Response::HTTP_OK);
    }
}
