custom/plugins/CbaxModulAnalytics/src/Controller/BackendController.php line 85

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cbax\ModulAnalytics\Controller;
  3. use Shopware\Core\Framework\Context;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Shopware\Core\Framework\Routing\Annotation\RouteScope;
  9. use Cbax\ModulAnalytics\Components\Connector;
  10. use Cbax\ModulAnalytics\Components\Base;
  11. /**
  12.  * @RouteScope(scopes={"administration"})
  13.  */
  14. class BackendController extends AbstractController
  15. {
  16.     /**
  17.     * Connector
  18.     */
  19.     private $connector;
  20.     /**
  21.      * Base
  22.      */
  23.     private $base;
  24.     public function __construct(Connector $connectorBase $base)
  25.     {
  26.         $this->connector $connector;
  27.         $this->base $base;
  28.     }
  29.     /**
  30.      * @Route("/api/cbax/analytics/getOrdersCountAll", name="api.cbax.analytics.getOrdersCountAll",  methods={"GET"}, defaults={"auth_required"=true})
  31.      */
  32.     public function getOrdersCountAllAction(Request $requestContext $context)
  33.     {
  34.         $parameters $this->base->getBaseParameters($request);
  35.         $result $this->connector->getOrdersCountAll($parameters$context);
  36.         if ($parameters['format'] === 'csv') {
  37.             return new JsonResponse(array("success" => true"fileSize" => $result));
  38.         }
  39.         return new JsonResponse(array("success" => true"seriesData" => $result));
  40.     }
  41.     /**
  42.      * @Route("/api/cbax/analytics/getSalesAll", name="api.cbax.analytics.getSalesAll",  methods={"GET"}, defaults={"auth_required"=true})
  43.      */
  44.     public function getSalesAllAction(Request $requestContext $context)
  45.     {
  46.         $parameters $this->base->getBaseParameters($request);
  47.         $result $this->connector->getSalesAll($parameters$context);
  48.         if ($parameters['format'] === 'csv') {
  49.             return new JsonResponse(array("success" => true"fileSize" => $result));
  50.         }
  51.         return new JsonResponse(array("success" => true"seriesData" => $result));
  52.     }
  53.     /**
  54.      * @Route("/api/cbax/analytics/getSalesByMonth", name="api.cbax.analytics.getSalesByMonth",  methods={"GET"}, defaults={"auth_required"=true})
  55.      */
  56.     public function getSalesByMonthAction(Request $requestContext $context)
  57.     {
  58.         $parameters $this->base->getBaseParameters($request);
  59.         $result $this->connector->getSalesByMonth($parameters$context);
  60.         if ($parameters['format'] === 'csv') {
  61.             return new JsonResponse(array("success" => true"fileSize" => $result));
  62.         }
  63.         return new JsonResponse(array("success" => true"seriesData" => $result));
  64.     }
  65.     /**
  66.      * @Route("/api/cbax/analytics/getSalesByPayment", name="api.cbax.analytics.getSalesByPayment",  methods={"GET"}, defaults={"auth_required"=true})
  67.      */
  68.     public function getSalesByPaymentAction(Request $requestContext $context)
  69.     {
  70.         $parameters $this->base->getBaseParameters($request);
  71.         $result $this->connector->getSalesByPayment($parameters$context);
  72.         if ($parameters['format'] === 'csv') {
  73.             return new JsonResponse(array("success" => true"fileSize" => $result));
  74.         }
  75.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  76.     }
  77.     /**
  78.      * @Route("/api/cbax/analytics/getSalesByShipping", name="api.cbax.analytics.getSalesByShipping",  methods={"GET"}, defaults={"auth_required"=true})
  79.      */
  80.     public function getSalesByShippingAction(Request $requestContext $context)
  81.     {
  82.         $parameters $this->base->getBaseParameters($request);
  83.         $result $this->connector->getSalesByShipping($parameters$context);
  84.         if ($parameters['format'] === 'csv') {
  85.             return new JsonResponse(array("success" => true"fileSize" => $result));
  86.         }
  87.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  88.     }
  89.     /**
  90.      * @Route("/api/cbax/analytics/getSalesByManufacturer", name="api.cbax.analytics.getSalesByManufacturer",  methods={"GET"}, defaults={"auth_required"=true})
  91.      */
  92.     public function getSalesByManufacturerAction(Request $requestContext $context)
  93.     {
  94.         $parameters $this->base->getBaseParameters($request);
  95.         $result $this->connector->getSalesByManufacturer($parameters$context);
  96.         if ($parameters['format'] === 'csv') {
  97.             return new JsonResponse(array("success" => true"fileSize" => $result));
  98.         }
  99.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  100.     }
  101.     /**
  102.      * @Route("/api/cbax/analytics/getSalesByProducts", name="api.cbax.analytics.getSalesByProducts",  methods={"GET"}, defaults={"auth_required"=true})
  103.      */
  104.     public function getSalesByProductsAction(Request $requestContext $context)
  105.     {
  106.         $parameters $this->base->getBaseParameters($request);
  107.         $result $this->connector->getSalesByProducts($parameters$context);
  108.         if ($parameters['format'] === 'csv') {
  109.             return new JsonResponse(array("success" => true"fileSize" => $result));
  110.         }
  111.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  112.     }
  113.     /**
  114.      * @Route("/api/cbax/analytics/getCountByProducts", name="api.cbax.analytics.getCountByProducts",  methods={"GET"}, defaults={"auth_required"=true})
  115.      */
  116.     public function getCountByProductsAction(Request $requestContext $context)
  117.     {
  118.         $parameters $this->base->getBaseParameters($request);
  119.         $result $this->connector->getCountByProducts($parameters$context);
  120.         if ($parameters['format'] === 'csv') {
  121.             return new JsonResponse(array("success" => true"fileSize" => $result));
  122.         }
  123.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  124.     }
  125.     /**
  126.      * @Route("/api/cbax/analytics/getSalesByCountry", name="api.cbax.analytics.getSalesByCountry",  methods={"GET"}, defaults={"auth_required"=true})
  127.      */
  128.     public function getSalesByCountryAction(Request $requestContext $context)
  129.     {
  130.         $parameters $this->base->getBaseParameters($request);
  131.         $result $this->connector->getSalesByCountry($parameters$context);
  132.         if ($parameters['format'] === 'csv') {
  133.             return new JsonResponse(array("success" => true"fileSize" => $result));
  134.         }
  135.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  136.     }
  137.     /**
  138.      * @Route("/api/cbax/analytics/getSalesByBillingCountry", name="api.cbax.analytics.getSalesByBillingCountry",  methods={"GET"}, defaults={"auth_required"=true})
  139.      */
  140.     public function getSalesByBillingCountryAction(Request $requestContext $context)
  141.     {
  142.         $parameters $this->base->getBaseParameters($request);
  143.         $result $this->connector->getSalesByBillingCountry($parameters$context);
  144.         if ($parameters['format'] === 'csv') {
  145.             return new JsonResponse(array("success" => true"fileSize" => $result));
  146.         }
  147.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  148.     }
  149.     /**
  150.      * @Route("/api/cbax/analytics/getSalesByLanguage", name="api.cbax.analytics.getSalesByLanguage",  methods={"GET"}, defaults={"auth_required"=true})
  151.      */
  152.     public function getSalesByLanguageAction(Request $requestContext $context)
  153.     {
  154.         $parameters $this->base->getBaseParameters($request);
  155.         $result $this->connector->getSalesByLanguage($parameters$context);
  156.         if ($parameters['format'] === 'csv') {
  157.             return new JsonResponse(array("success" => true"fileSize" => $result));
  158.         }
  159.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  160.     }
  161.     /**
  162.      * @Route("/api/cbax/analytics/getSalesBySaleschannels", name="api.cbax.analytics.getSalesBySaleschannels",  methods={"GET"}, defaults={"auth_required"=true})
  163.      */
  164.     public function getSalesBySaleschannelsAction(Request $requestContext $context)
  165.     {
  166.         $parameters $this->base->getBaseParameters($request);
  167.         $result $this->connector->getSalesBySaleschannels($parameters$context);
  168.         if ($parameters['format'] === 'csv') {
  169.             return new JsonResponse(array("success" => true"fileSize" => $result));
  170.         }
  171.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  172.     }
  173.     /**
  174.      * @Route("/api/cbax/analytics/getSalesByAffiliates", name="api.cbax.analytics.getSalesByAffiliates",  methods={"GET"}, defaults={"auth_required"=true})
  175.      */
  176.     public function getSalesByAffiliatesAction(Request $requestContext $context)
  177.     {
  178.         $parameters $this->base->getBaseParameters($request);
  179.         $result $this->connector->getSalesByAffiliates($parameters$context);
  180.         if ($parameters['format'] === 'csv') {
  181.             return new JsonResponse(array("success" => true"fileSize" => $result));
  182.         }
  183.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  184.     }
  185.     /**
  186.      * @Route("/api/cbax/analytics/getSalesByCampaign", name="api.cbax.analytics.getSalesByCampaign",  methods={"GET"}, defaults={"auth_required"=true})
  187.      */
  188.     public function getSalesByCampaignAction(Request $requestContext $context)
  189.     {
  190.         $parameters $this->base->getBaseParameters($request);
  191.         $result $this->connector->getSalesByCampaign($parameters$context);
  192.         if ($parameters['format'] === 'csv') {
  193.             return new JsonResponse(array("success" => true"fileSize" => $result));
  194.         }
  195.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  196.     }
  197.     /**
  198.      * @Route("/api/cbax/analytics/getSalesByCustomergroups", name="api.cbax.analytics.getSalesByCustomergroups",  methods={"GET"}, defaults={"auth_required"=true})
  199.      */
  200.     public function getSalesByCustomergroupsAction(Request $requestContext $context)
  201.     {
  202.         $parameters $this->base->getBaseParameters($request);
  203.         $result $this->connector->getSalesByCustomergroups($parameters$context);
  204.         if ($parameters['format'] === 'csv') {
  205.             return new JsonResponse(array("success" => true"fileSize" => $result));
  206.         }
  207.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  208.     }
  209.     /**
  210.      * @Route("/api/cbax/analytics/getSalesByWeekdays", name="api.cbax.analytics.getSalesByWeekdays",  methods={"GET"}, defaults={"auth_required"=true})
  211.      */
  212.     public function getSalesByWeekdaysAction(Request $requestContext $context)
  213.     {
  214.         $parameters $this->base->getBaseParameters($request);
  215.         $result $this->connector->getSalesByWeekdays($parameters$context);
  216.         if ($parameters['format'] === 'csv') {
  217.             return new JsonResponse(array("success" => true"fileSize" => $result));
  218.         }
  219.         return new JsonResponse(array("success" => true"seriesData" => $result));
  220.     }
  221.     /**
  222.      * @Route("/api/cbax/analytics/getSalesByTime", name="api.cbax.analytics.getSalesByTime",  methods={"GET"}, defaults={"auth_required"=true})
  223.      */
  224.     public function getSalesByTimeAction(Request $requestContext $context)
  225.     {
  226.         $parameters $this->base->getBaseParameters($request);
  227.         $result $this->connector->getSalesByTime($parameters$context);
  228.         if ($parameters['format'] === 'csv') {
  229.             return new JsonResponse(array("success" => true"fileSize" => $result));
  230.         }
  231.         return new JsonResponse(array("success" => true"seriesData" => $result));
  232.     }
  233.     /**
  234.      * @Route("/api/cbax/analytics/getOrdersByStatus", name="api.cbax.analytics.getOrdersByStatus",  methods={"GET"}, defaults={"auth_required"=true})
  235.      */
  236.     public function getOrdersByStatusAction(Request $requestContext $context)
  237.     {
  238.         $parameters $this->base->getBaseParameters($request);
  239.         $result $this->connector->getOrdersByStatus($parameters$context);
  240.         if ($parameters['format'] === 'csv') {
  241.             return new JsonResponse(array("success" => true"fileSize" => $result));
  242.         }
  243.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  244.     }
  245.     /**
  246.      * @Route("/api/cbax/analytics/getProductLowInstock", name="api.cbax.analytics.getProductLowInstock",  methods={"GET"}, defaults={"auth_required"=true})
  247.      */
  248.     public function getProductLowInstockAction(Request $requestContext $context)
  249.     {
  250.         $parameters $this->base->getBaseParameters($request);
  251.         $result $this->connector->getProductLowInstock($parameters$context);
  252.         if ($parameters['format'] === 'csv') {
  253.             return new JsonResponse(array("success" => true"fileSize" => $result));
  254.         }
  255.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  256.     }
  257.     /**
  258.      * @Route("/api/cbax/analytics/getProductHighInstock", name="api.cbax.analytics.getProductHighInstock",  methods={"GET"}, defaults={"auth_required"=true})
  259.      */
  260.     public function getProductHighInstockAction(Request $requestContext $context)
  261.     {
  262.         $parameters $this->base->getBaseParameters($request);
  263.         $result $this->connector->getProductHighInstock($parameters$context);
  264.         if ($parameters['format'] === 'csv') {
  265.             return new JsonResponse(array("success" => true"fileSize" => $result));
  266.         }
  267.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  268.     }
  269.     /**
  270.      * @Route("/api/cbax/analytics/getSalesByPromotion", name="api.cbax.analytics.getSalesByPromotion",  methods={"GET"}, defaults={"auth_required"=true})
  271.      */
  272.     public function getSalesByPromotionAction(Request $requestContext $context)
  273.     {
  274.         $parameters $this->base->getBaseParameters($request);
  275.         $result $this->connector->getSalesByPromotion($parameters$context);
  276.         if ($parameters['format'] === 'csv') {
  277.             return new JsonResponse(array("success" => true"fileSize" => $result));
  278.         }
  279.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  280.     }
  281.     /**
  282.      * @Route("/api/cbax/analytics/getSalesByPromotionOthers", name="api.cbax.analytics.getSalesByPromotionOthers",  methods={"GET"}, defaults={"auth_required"=true})
  283.      */
  284.     public function getSalesByPromotionOthersAction(Request $requestContext $context)
  285.     {
  286.         $parameters $this->base->getBaseParameters($request);
  287.         $result $this->connector->getSalesByPromotionOthers($parameters$context);
  288.         if ($parameters['format'] === 'csv') {
  289.             return new JsonResponse(array("success" => true"fileSize" => $result));
  290.         }
  291.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  292.     }
  293.     /**
  294.      * @Route("/api/cbax/analytics/getProductInactiveWithInstock", name="api.cbax.analytics.getProductInactiveWithInstock",  methods={"GET"}, defaults={"auth_required"=true})
  295.      */
  296.     public function getProductInactiveWithInstockAction(Request $requestContext $context)
  297.     {
  298.         $parameters $this->base->getBaseParameters($request);
  299.         $result $this->connector->getProductInactiveWithInstock($parameters$context);
  300.         if ($parameters['format'] === 'csv') {
  301.             return new JsonResponse(array("success" => true"fileSize" => $result));
  302.         }
  303.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  304.     }
  305.     /**
  306.      * @Route("/api/cbax/analytics/getProductByOrders", name="api.cbax.analytics.getProductByOrders",  methods={"GET"}, defaults={"auth_required"=true})
  307.      */
  308.     public function getProductByOrdersAction(Request $requestContext $context)
  309.     {
  310.         $parameters $this->base->getBaseParameters($request);
  311.         $result $this->connector->getProductByOrders($parameters$context);
  312.         if ($parameters['format'] === 'csv') {
  313.             return new JsonResponse(array("success" => true"fileSize" => $result));
  314.         }
  315.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  316.     }
  317.     /**
  318.      * @Route("/api/cbax/analytics/getSalesByCustomer", name="api.cbax.analytics.getSalesByCustomer",  methods={"GET"}, defaults={"auth_required"=true})
  319.      */
  320.     public function getSalesByCustomerAction(Request $requestContext $context)
  321.     {
  322.         $parameters $this->base->getBaseParameters($request);
  323.         $result $this->connector->getSalesByCustomer($parameters$context);
  324.         if ($parameters['format'] === 'csv') {
  325.             return new JsonResponse(array("success" => true"fileSize" => $result));
  326.         }
  327.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  328.     }
  329.     /**
  330.      * @Route("/api/cbax/analytics/getNewCustomersByTime", name="api.cbax.analytics.getNewCustomersByTime",  methods={"GET"}, defaults={"auth_required"=true})
  331.      */
  332.     public function getNewCustomersByTimeAction(Request $requestContext $context)
  333.     {
  334.         $parameters $this->base->getBaseParameters($request);
  335.         $result $this->connector->getNewCustomersByTime($parameters$context);
  336.         if ($parameters['format'] === 'csv') {
  337.             return new JsonResponse(array("success" => true"fileSize" => $result));
  338.         }
  339.         return new JsonResponse(array("success" => true"seriesData" => $result));
  340.     }
  341.     /**
  342.      * @Route("/api/cbax/analytics/getCustomerAge", name="api.cbax.analytics.getCustomerAge",  methods={"GET"}, defaults={"auth_required"=true})
  343.      */
  344.     public function getCustomerAgeAction(Request $requestContext $context)
  345.     {
  346.         $parameters $this->base->getBaseParameters($request);
  347.         $result $this->connector->getCustomerAge($parameters$context);
  348.         if ($parameters['format'] === 'csv') {
  349.             return new JsonResponse(array("success" => true"fileSize" => $result));
  350.         }
  351.         return new JsonResponse(array("success" => true"seriesData" => $result));
  352.     }
  353.     /**
  354.      * @Route("/api/cbax/analytics/getProductSoonOutstock", name="api.cbax.analytics.getProductSoonOutstock",  methods={"GET"}, defaults={"auth_required"=true})
  355.      */
  356.     public function getProductSoonOutstockAction(Request $requestContext $context)
  357.     {
  358.         $parameters $this->base->getBaseParameters($request);
  359.         $result $this->connector->getProductSoonOutstock($parameters$context);
  360.         if ($parameters['format'] === 'csv') {
  361.             return new JsonResponse(array("success" => true"fileSize" => $result));
  362.         }
  363.         return new JsonResponse(array("success" => true"gridData" => $result['gridData']));
  364.     }
  365.     /**
  366.      * @Route("/api/cbax/analytics/getOrdersByTransactionStatus", name="api.cbax.analytics.getOrdersByTransactionStatus",  methods={"GET"}, defaults={"auth_required"=true})
  367.      */
  368.     public function getOrdersByTransactionStatusAction(Request $requestContext $context)
  369.     {
  370.         $parameters $this->base->getBaseParameters($request);
  371.         $result $this->connector->getOrdersByTransactionStatus($parameters$context);
  372.         if ($parameters['format'] === 'csv') {
  373.             return new JsonResponse(array("success" => true"fileSize" => $result));
  374.         }
  375.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  376.     }
  377.     /**
  378.      * @Route("/api/cbax/analytics/getOrdersByDeliveryStatus", name="api.cbax.analytics.getOrdersByDeliveryStatus",  methods={"GET"}, defaults={"auth_required"=true})
  379.      */
  380.     public function getOrdersByDeliveryStatusAction(Request $requestContext $context)
  381.     {
  382.         $parameters $this->base->getBaseParameters($request);
  383.         $result $this->connector->getOrdersByDeliveryStatus($parameters$context);
  384.         if ($parameters['format'] === 'csv') {
  385.             return new JsonResponse(array("success" => true"fileSize" => $result));
  386.         }
  387.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  388.     }
  389.     /**
  390.      * @Route("/api/cbax/analytics/getQuickOverview", name="api.cbax.analytics.getQuickOverview",  methods={"GET"}, defaults={"auth_required"=true})
  391.      */
  392.     public function getQuickOverviewAction(Request $requestContext $context)
  393.     {
  394.         $parameters $this->base->getBaseParameters($request);
  395.         $result $this->connector->getQuickOverview($parameters$context);
  396.         if ($parameters['format'] === 'csv') {
  397.             return new JsonResponse(array("success" => true"fileSize" => $result));
  398.         }
  399.         return new JsonResponse(array("success" => true"gridData" => $result));
  400.     }
  401.     /**
  402.      * @Route("/api/cbax/analytics/getUnfinishedOrders", name="api.cbax.analytics.getUnfinishedOrders",  methods={"GET"}, defaults={"auth_required"=true})
  403.      */
  404.     public function getUnfinishedOrdersAction(Request $requestContext $context)
  405.     {
  406.         $parameters $this->base->getBaseParameters($request);
  407.         $result $this->connector->getUnfinishedOrders($parameters$context);
  408.         if ($parameters['format'] === 'csv') {
  409.             return new JsonResponse(array("success" => true"fileSize" => $result));
  410.         }
  411.         return new JsonResponse(array("success" => true"gridData" => $result));
  412.     }
  413.     /**
  414.      * @Route("/api/cbax/analytics/getUnfinishedOrdersByPayment", name="api.cbax.analytics.getUnfinishedOrdersByPayment",  methods={"GET"}, defaults={"auth_required"=true})
  415.      */
  416.     public function getUnfinishedOrdersByPaymentAction(Request $requestContext $context)
  417.     {
  418.         $parameters $this->base->getBaseParameters($request);
  419.         $result $this->connector->getUnfinishedOrdersByPayment($parameters$context);
  420.         if ($parameters['format'] === 'csv') {
  421.             return new JsonResponse(array("success" => true"fileSize" => $result));
  422.         }
  423.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  424.     }
  425.     /**
  426.      * @Route("/api/cbax/analytics/getUnfinishedOrdersByCart", name="api.cbax.analytics.getUnfinishedOrdersByCart",  methods={"GET"}, defaults={"auth_required"=true})
  427.      */
  428.     public function getUnfinishedOrdersByCartAction(Request $requestContext $context)
  429.     {
  430.         $parameters $this->base->getBaseParameters($request);
  431.         $result $this->connector->getUnfinishedOrdersByCart($parameters$context);
  432.         if ($parameters['format'] === 'csv') {
  433.             return new JsonResponse(array("success" => true"fileSize" => $result));
  434.         }
  435.         return new JsonResponse(array("success" => true"seriesData" => $result));
  436.     }
  437.     /**
  438.      * @Route("/api/cbax/analytics/getCanceledOrdersByMonth", name="api.cbax.analytics.getCanceledOrdersByMonth",  methods={"GET"}, defaults={"auth_required"=true})
  439.      */
  440.     public function getCanceledOrdersByMonthAction(Request $requestContext $context)
  441.     {
  442.         $parameters $this->base->getBaseParameters($request);
  443.         $result $this->connector->getCanceledOrdersByMonth($parameters$context);
  444.         if ($parameters['format'] === 'csv') {
  445.             return new JsonResponse(array("success" => true"fileSize" => $result));
  446.         }
  447.         return new JsonResponse(array("success" => true"seriesData" => $result));
  448.     }
  449.     /**
  450.      * @Route("/api/cbax/analytics/getSearchTerms", name="api.cbax.analytics.getSearchTerms",  methods={"GET"}, defaults={"auth_required"=true})
  451.      */
  452.     public function getSearchTermsAction(Request $requestContext $context)
  453.     {
  454.         $parameters $this->base->getBaseParameters($request);
  455.         $result $this->connector->getSearchTerms($parameters$context);
  456.         if ($parameters['format'] === 'csv') {
  457.             return new JsonResponse(array("success" => true"fileSize" => $result));
  458.         }
  459.         return new JsonResponse(array("success" => true"gridData" => $result));
  460.     }
  461.     /**
  462.      * @Route("/api/cbax/analytics/getSearchActivity", name="api.cbax.analytics.getSearchActivity",  methods={"GET"}, defaults={"auth_required"=true})
  463.      */
  464.     public function getSearchTermsActivityAction(Request $requestContext $context)
  465.     {
  466.         $parameters $this->base->getBaseParameters($request);
  467.         $result $this->connector->getSearchActivity($parameters$context);
  468.         if ($parameters['format'] === 'csv') {
  469.             return new JsonResponse(array("success" => true"fileSize" => $result));
  470.         }
  471.         return new JsonResponse(array("success" => true"seriesData" => $result));
  472.     }
  473.     /**
  474.      * @Route("/api/cbax/analytics/getSearchTrends", name="api.cbax.analytics.getSearchTrends",  methods={"GET"}, defaults={"auth_required"=true})
  475.      */
  476.     public function getSearchTermsTrendsAction(Request $requestContext $context)
  477.     {
  478.         $parameters $this->base->getBaseParameters($request);
  479.         $result $this->connector->getSearchTrends($parameters$context);
  480.         if ($parameters['format'] === 'csv') {
  481.             return new JsonResponse(array("success" => true"fileSize" => $result));
  482.         }
  483.         return new JsonResponse(array("success" => true"seriesData" => $result));
  484.     }
  485.     /**
  486.      * @Route("/api/cbax/analytics/getSalesByDevice", name="api.cbax.analytics.getSalesByDevice",  methods={"GET"}, defaults={"auth_required"=true})
  487.      */
  488.     public function getSalesByDeviceAction(Request $requestContext $context)
  489.     {
  490.         $parameters $this->base->getBaseParameters($request);
  491.         $result $this->connector->getSalesByDevice($parameters$context);
  492.         if ($parameters['format'] === 'csv') {
  493.             return new JsonResponse(array("success" => true"fileSize" => $result));
  494.         }
  495.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  496.     }
  497.     /**
  498.      * @Route("/api/cbax/analytics/getSalesByOs", name="api.cbax.analytics.getSalesByOs",  methods={"GET"}, defaults={"auth_required"=true})
  499.      */
  500.     public function getSalesByOsAction(Request $requestContext $context)
  501.     {
  502.         $parameters $this->base->getBaseParameters($request);
  503.         $result $this->connector->getSalesByOs($parameters$context);
  504.         if ($parameters['format'] === 'csv') {
  505.             return new JsonResponse(array("success" => true"fileSize" => $result));
  506.         }
  507.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  508.     }
  509.     /**
  510.      * @Route("/api/cbax/analytics/getSalesByBrowser", name="api.cbax.analytics.getSalesByBrowser",  methods={"GET"}, defaults={"auth_required"=true})
  511.      */
  512.     public function getSalesByBrowserAction(Request $requestContext $context)
  513.     {
  514.         $parameters $this->base->getBaseParameters($request);
  515.         $result $this->connector->getSalesByBrowser($parameters$context);
  516.         if ($parameters['format'] === 'csv') {
  517.             return new JsonResponse(array("success" => true"fileSize" => $result));
  518.         }
  519.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  520.     }
  521.     /**
  522.      * @Route("/api/cbax/analytics/getProductsProfit", name="api.cbax.analytics.getProductsProfit",  methods={"GET"}, defaults={"auth_required"=true})
  523.      */
  524.     public function getProductsProfitAction(Request $requestContext $context)
  525.     {
  526.         $parameters $this->base->getBaseParameters($request);
  527.         $parameters['sorting'] = explode('-'trim($request->get('sorting','')));
  528.         $result $this->connector->getProductsProfit($parameters$context);
  529.         if ($parameters['format'] === 'csv') {
  530.             return new JsonResponse(array("success" => true"fileSize" => $result));
  531.         }
  532.         return new JsonResponse(array("success" => true"overall" => $result['overall'], "gridData" => $result['gridData']));
  533.     }
  534.     /**
  535.      * @Route("/api/cbax/analytics/getProductsInventory", name="api.cbax.analytics.getProductsInventory",  methods={"GET"}, defaults={"auth_required"=true})
  536.      */
  537.     public function getProductsInventoryAction(Request $requestContext $context)
  538.     {
  539.         $parameters $this->base->getBaseParameters($request);
  540.         $parameters['sorting'] = explode('-'trim($request->get('sorting','')));
  541.         $result $this->connector->getProductsInventory($parameters$context);
  542.         if ($parameters['format'] === 'csv') {
  543.             return new JsonResponse(array("success" => true"fileSize" => $result));
  544.         }
  545.         return new JsonResponse(array("success" => true"overall" => $result['overall'], "gridData" => $result['gridData']));
  546.     }
  547.     /**
  548.      * @Route("/api/cbax/analytics/getVariantsCompare", name="api.cbax.analytics.getVariantsCompare",  methods={"GET"}, defaults={"auth_required"=true})
  549.      */
  550.     public function getVariantsCompareAction(Request $requestContext $context)
  551.     {
  552.         $parameters $this->base->getBaseParameters($request);
  553.         $parameters['propertyGroupId'] = trim($request->get('propertyGroupId',''));
  554.         $parameters['categoryId'] = trim($request->get('categoryId',''));
  555.         $result $this->connector->getVariantsCompare($parameters$context);
  556.         if ($parameters['format'] === 'csv') {
  557.             return new JsonResponse(array("success" => true"fileSize" => $result));
  558.         }
  559.         return new JsonResponse(array("success" => true"overall" => $result['overall'], "seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  560.     }
  561.     /**
  562.      * @Route("/api/cbax/analytics/getProductStream", name="api.cbax.analytics.getProductStream",  methods={"GET"}, defaults={"auth_required"=true})
  563.     public function getProductStreamAction(Request $request, Context $context)
  564.     {
  565.         $salesChannelId = $request->get('salesChannelId','');
  566.         $adminLocalLanguage = trim($request->get('adminLocaleLanguage',''));
  567.         $format = trim($request->get('format',''));
  568.         $labels = trim($request->get('labels',''));
  569.         $sorting = explode('-', trim($request->get('sorting','')));
  570.         $productStreamId = trim($request->get('productStreamId',''));
  571.         $dates = $this->base->getDates($request);
  572.         $startDate = $dates['startDate'];
  573.         $endDate = $dates['endDate'];
  574.         $result = $this->connector->getProductStream($startDate, $endDate, $salesChannelId, $context, $adminLocalLanguage, $format, $labels, $productStreamId, $sorting);
  575.         if ($format === 'csv') {
  576.             return new JsonResponse(array("success" => true, "fileSize" => $result));
  577.         }
  578.         return new JsonResponse(array("success" => true, "overall" => $result['overall'], "seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  579.     }
  580.      * */
  581.     /**
  582.      * @Route("/api/cbax/analytics/getSalesByProductsFilter", name="api.cbax.analytics.getSalesByProductsFilter",  methods={"GET"}, defaults={"auth_required"=true})
  583.      */
  584.     public function getSalesByProductsFilterAction(Request $requestContext $context)
  585.     {
  586.         $parameters $this->base->getBaseParameters($request);
  587.         $parameters['productStreamId'] = trim($request->get('productStreamId',''));
  588.         $result $this->connector->getSalesByProductsFilter($parameters$context);
  589.         if ($parameters['format'] === 'csv') {
  590.             return new JsonResponse(array("success" => true"fileSize" => $result));
  591.         }
  592.         return new JsonResponse(array("success" => true"overall" => $result['overall'], "overallCount" => $result['overallCount'], "seriesData" => $result['seriesData'], "gridData" => $result['gridData']));
  593.     }
  594.     /**
  595.      * @Route("/api/cbax/analytics/download", name="api.cbax.analytics.download", defaults={"auth_required"=false}, methods={"GET"})
  596.      */
  597.     public function download(Request $requestContext $context)
  598.     {
  599.         $params $request->query->all();
  600.         $fileName $params['fileName'];
  601.         $fileSize $params['fileSize'];
  602.         return $this->base->getDownloadResponse($fileName$fileSize);
  603.     }
  604.     /**
  605.      * @Route("/api/cbax/analytics/getProductImpressions", name="api.cbax.analytics.getProductImpressions",  methods={"GET"}, defaults={"auth_required"=true})
  606.      */
  607.     public function getProductImpressionsAction(Request $requestContext $context)
  608.     {
  609.         $parameters $this->base->getBaseParameters($request);
  610.         $result $this->connector->getProductImpressions($parameters$context);
  611.         if ($parameters['format'] === 'csv') {
  612.             return new JsonResponse(array("success" => true"fileSize" => $result));
  613.         }
  614.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData'], "overall" => $result['overall']));
  615.     }
  616.     /**
  617.      * @Route("/api/cbax/analytics/getVisitors", name="api.cbax.analytics.getVisitors",  methods={"GET"}, defaults={"auth_required"=true})
  618.      */
  619.     public function getVisitorsAction(Request $requestContext $context)
  620.     {
  621.         $parameters $this->base->getBaseParameters($request);
  622.         $result $this->connector->getVisitors($parameters$context);
  623.         if ($parameters['format'] === 'csv') {
  624.             return new JsonResponse(array("success" => true"fileSize" => $result));
  625.         }
  626.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData']));
  627.     }
  628.     /**
  629.      * @Route("/api/cbax/analytics/getVisitorImpressions", name="api.cbax.analytics.getVisitorImpressions",  methods={"GET"}, defaults={"auth_required"=true})
  630.      */
  631.     public function getVisitorImpressionsAction(Request $requestContext $context)
  632.     {
  633.         $parameters $this->base->getBaseParameters($request);
  634.         $result $this->connector->getVisitorImpressions($parameters$context);
  635.         if ($parameters['format'] === 'csv') {
  636.             return new JsonResponse(array("success" => true"fileSize" => $result));
  637.         }
  638.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData']));
  639.     }
  640.     /**
  641.      * @Route("/api/cbax/analytics/getReferer", name="api.cbax.analytics.getReferer",  methods={"GET"}, defaults={"auth_required"=true})
  642.      */
  643.     public function getRefererAction(Request $requestContext $context)
  644.     {
  645.         $parameters $this->base->getBaseParameters($request);
  646.         $result $this->connector->getReferer($parameters$context);
  647.         if ($parameters['format'] === 'csv') {
  648.             return new JsonResponse(array("success" => true"fileSize" => $result));
  649.         }
  650.         return new JsonResponse(array("success" => true"gridData" => $result['gridData']));
  651.     }
  652.     /**
  653.      * @Route("/api/cbax/analytics/getCategoryImpressions", name="api.cbax.analytics.getCategoryImpressions",  methods={"GET"}, defaults={"auth_required"=true})
  654.      */
  655.     public function getCategoryImpressionsAction(Request $requestContext $context)
  656.     {
  657.         $parameters $this->base->getBaseParameters($request);
  658.         $result $this->connector->getCategoryImpressions($parameters$context);
  659.         if ($parameters['format'] === 'csv') {
  660.             return new JsonResponse(array("success" => true"fileSize" => $result));
  661.         }
  662.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData'], "overall" => $result['overall']));
  663.     }
  664.     /**
  665.      * @Route("/api/cbax/analytics/getManufacturerImpressions", name="api.cbax.analytics.getManufacturerImpressions",  methods={"GET"}, defaults={"auth_required"=true})
  666.      */
  667.     public function getManufacturerImpressionsAction(Request $requestContext $context)
  668.     {
  669.         $parameters $this->base->getBaseParameters($request);
  670.         $result $this->connector->getManufacturerImpressions($parameters$context);
  671.         if ($parameters['format'] === 'csv') {
  672.             return new JsonResponse(array("success" => true"fileSize" => $result));
  673.         }
  674.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData'], "overall" => $result['overall']));
  675.     }
  676.     /**
  677.      * @Route("/api/cbax/analytics/getLexiconImpressions", name="api.cbax.analytics.getLexiconImpressions",  methods={"GET"}, defaults={"auth_required"=true})
  678.      */
  679.     public function getLexiconImpressionsAction(Request $requestContext $context)
  680.     {
  681.         $parameters $this->base->getBaseParameters($request);
  682.         $result $this->connector->getLexiconImpressions($parameters$context);
  683.         if (empty($result))
  684.         {
  685.             return new JsonResponse(array("success" => false));
  686.         }
  687.         if ($parameters['format'] === 'csv') {
  688.             return new JsonResponse(array("success" => true"fileSize" => $result));
  689.         }
  690.         return new JsonResponse(array("success" => true"seriesData" => $result['seriesData'], "gridData" => $result['gridData'], "overall" => $result['overall']));
  691.     }
  692.     /**
  693.      * @Route("/api/cbax/analytics/getSingleProduct", name="api.cbax.analytics.getSingleProduct",  methods={"GET"}, defaults={"auth_required"=true})
  694.      */
  695.     public function getSingleProductAction(Request $requestContext $context)
  696.     {
  697.         $parameters $this->base->getBaseParameters($request);
  698.         $parameters['productId'] = $request->get('productId','');
  699.         $parameters['compareIds'] = $request->get('compareIds','');
  700.         $result $this->connector->getSingleProduct($parameters$context);
  701.         /*
  702.         if ($parameters['format'] === 'csv') {
  703.             return new JsonResponse(array("success" => true, "fileSize" => $result));
  704.         }
  705.         return new JsonResponse(array(
  706.             "success" => true,
  707.             "seriesData" => $result['seriesData'],
  708.             "productName" => $result['productName'],
  709.             'clickData' => $result['clickData'],
  710.             "seriesComparedata" => $result['seriesComparedata'],
  711.             'compareClickData' => $result['compareClickData'],
  712.             "compareProductNames" => $result['compareProductNames'],
  713.             "gridData" => $result['gridData']
  714.         ));
  715.         */
  716.         return new JsonResponse(array(
  717.             "success" => true,
  718.             "seriesData" => $result['seriesData'],
  719.             "productName" => $result['productName'],
  720.             "seriesCompareData" => $result['seriesCompareData'],
  721.             "compareProductNames" => $result['compareProductNames'],
  722.             "gridData" => $result['gridData']
  723.         ));
  724.     }
  725. }