<?php

namespace YooMoney\Helpers;

/**
 * Класс методов для подготовки и работы с данными
 */
class StorageHelper
{
    /**
     * @var JVersionDependenciesHelper
     */
    public $versionHelper;

    public function __construct()
    {
        $this->versionHelper = new JVersionDependenciesHelper();
    }
    /**
     * Подготовка данных в нужный формат (строка или json) для сохранения
     *
     * @param string $paramsRow - строка с параметрами из БД
     * @param array $paramsArray - массив с параметрами из формы
     * @return false|string
     */
    public function prepareQueryParams($paramsRow, $paramsArray)
    {
        return $this->isJsonString($paramsRow) || $this->versionHelper->getJoomShoppingVersion() == 5
            ? json_encode($paramsArray)
            : (new \parseString($paramsArray))->splitParamsToString();
    }

    /**
     * Проверка строки на json формат
     *
     * @param string $string
     * @return bool
     */
    public function isJsonString($string)
    {
        json_decode($string, false);
        return json_last_error() === JSON_ERROR_NONE;
    }

    /**
     * Парсинг строки в массив
     * и передача конкретной части массива, если требуется
     *
     * @param string $string
     * @param string|null $arrayName
     */
    public function stringToArray($string, $arrayName = null)
    {
        parse_str($string, $result);
        return $arrayName && isset($result[$arrayName]) ? $result[$arrayName] : $result;
    }
}