<?php
/**
* @author OfficeBrain 4160 <info@officebrain.com>
*
* Description :  Queue API Service Class
*
**/
namespace OfficeBrain\Bundle\QueueBundle\Manager\Service;

use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use OfficeBrain\Bundle\QueueBundle\Manager\Extended as extended;

class ApiManager
{
    /**
    * @author Employee Id: 4160
    * Description :
    * initFactory method to decide which extended class called based on parameters
    *
    * @param 1 : object container
    * @param 2 : array entityParameters
    *
    * @return object
    *
    **/
    public static function initFactory(Container $container, $entityParameters)
    {
        $request = $container->get('request');
        $object = $request->attributes->get('object');
        $queueClass = $request->attributes->get('runQueue');
        if ($queueClass) {
            $class = $queueClass;
        } elseif ($object) {
            if (array_key_exists($object, $entityParameters)) {
                $class = $entityParameters[$object]['queueClass'];
            } else {
                #echo "No object configured to integrate in transaction queue...";
                return array();
            }
        } else {
            return array();
        }
        $queueClass = "OfficeBrain\\Bundle\\QueueBundle\\Manager\\Extended\\".$class;
        $queueObj = new $queueClass($container, $entityParameters);
        return $queueObj;
    }
}
