<?php declare(strict_types = 1);
namespace MailPoet\Newsletter\Embed\RestApi\Endpoints;
if (!defined('ABSPATH')) exit;
use MailPoet\API\REST\Request;
use MailPoet\API\REST\Response;
use MailPoet\Newsletter\Embed\NewsletterEmbedService;
use MailPoet\Validator\Builder;
class NewsletterEmbedSelectorEndpoint extends NewsletterEmbedEndpoint {
/** @var NewsletterEmbedService */
private $newsletterEmbedService;
public function __construct(
NewsletterEmbedService $newsletterEmbedService
) {
$this->newsletterEmbedService = $newsletterEmbedService;
}
public function handle(Request $request): Response {
$search = is_string($request->getParam('search')) ? (string)$request->getParam('search') : '';
$limit = is_numeric($request->getParam('limit')) ? (int)$request->getParam('limit') : null;
return new Response([
'items' => $this->newsletterEmbedService->getSelectorItems($search, $limit),
]);
}
public static function getRequestSchema(): array {
return [
'search' => Builder::string(),
'limit' => Builder::integer(),
];
}
}