/**
  * Request handler to implement in child classes.
  *
  * @return JsonResponse
  */
 protected function run()
 {
     $storage = AddProductController::getStorageArr();
     foreach ($this->request->request as $prod_id => $discountData) {
         $storage[$prod_id]['discounts'][] = ["threshold" => $discountData['threshold'], "amount" => $discountData['amount'], "type" => $discountData['type'], "creationDate" => date("Y-m-d H:i:s"), "expiryDate" => null];
     }
     AddProductController::saveStorageArr($storage);
     return $this->app->json(["status" => "OK"]);
 }
 /**
  * Request handler to implement in child classes.
  *
  * @return JsonResponse
  */
 protected function run()
 {
     $storage = AddProductController::getStorageArr();
     $products = array_map(function ($p) use($storage) {
         $p['prices'] = $storage[$p['id']]['prices'] ?? [];
         $p['price'] = end($p['prices']);
         if (array_key_exists('discounts', $storage[$p['id']])) {
             $p['discounts'] = array_filter($storage[$p['id']]['discounts'], function ($d) {
                 return $d['expiryDate'] === null;
             });
         }
         return $p;
     }, $this->products);
     return $this->app["twig"]->render("productsInput.twig", ["products" => $products]);
 }
 /**
  * Request handler to implement in child classes.
  *
  * @return JsonResponse
  */
 protected function run()
 {
     $products = AddProductController::getStorageArr();
     $prodId = $this->request->request->get("prodId");
     $creationDate = $this->request->request->get("creationDate");
     foreach ($products as $id => &$prod) {
         if ($id === $prodId) {
             foreach ($prod['discounts'] as &$d) {
                 if ($d['creationDate'] === $creationDate) {
                     $d['expiryDate'] = date("Y-m-d H:i:s");
                 }
             }
         }
     }
     AddProductController::saveStorageArr($products);
     return $this->app->json(["status" => "OK"]);
 }