<?php

/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2025 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */

use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Http\Http;

// No direct access
defined('_JEXEC') or die('Restricted access');

/**
 * Get all installed fonts
 *
 * @since 5.0.0
 */
trait AllFontsTrait
{
	public function allFonts()
	{
		$method = $this->getInputMethod();
		$this->checkNotAllowedMethods(['POST', 'DELETE', 'PUT', 'PATCH'], $method);

		if ($method === 'GET')
		{
			$this->getInstalledFonts();
		}
	}

	private function getInstalledFonts()
	{
		$db = Factory::getDbo();
		$query = $db->getQuery(true);

		$query->select('*')
			->from($db->quoteName('#__sppagebuilder_fonts'))
			->where($db->quoteName('published') . ' = 1');

		$db->setQuery($query);

		try
		{
			$response = $db->loadObjectList();

			if (isset($response))
			{
				foreach ($response as $key => $value)
				{
					if (isset($value->data))
					{
						$value->data = json_decode($value->data);
					}
				}
			}
		}
		catch (\Exception $e)
		{
			$this->sendResponse(['message' => $e->getMessage()], 500);
		}

		$this->sendResponse($response);
	}
}
