<?php

namespace OfficeBrain\Bundle\SearchBundle\Form\Transformer;

use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\TransformationFailedException;

/**
 * Serialize text to solr supported attribute text;
 *
 * @author OfficeBrain 3979 <info@officebrain.com>
 *
 */
class SerializeToArray implements DataTransformerInterface
{
    /**
     * Transforms an object (issue) to a string (number).
     *
     * @param array $jsonData data
     *
     * @return string
     */
    public function transform($jsonData)
    {
        if (null === $jsonData) {
            return null;
        }

        return json_encode($jsonData);
    }

    /**
     * Transforms a string (number) to an object (issue).
     *
     * @param string $serializeString
     *
     * @return array|null
     *
     * @throws TransformationFailedException if object (issue) is not found.
     */
    public function reverseTransform($serializeString)
    {
        if ($serializeString === null) {
            return null;
        }


        if(!is_array($serializeString) && strlen($serializeString) > 0){
        	$tmpData = json_decode($serializeString);
        }else{
        	$tmpData = $serializeString;
        }

        if (!$tmpData) {
            throw new TransformationFailedException(sprintf('Please provide a valid serialization string!'));
        }

        $cat_arr = array();
        if(isset($tmpData) && is_array($tmpData)){
	        foreach ($tmpData as $cat_id) {
	            if($cat_id != null){
	        		$cat_arr[] = $cat_id;
	            }
	        }
       	}
        return $cat_arr;
    }
}
