Example #1
0
 public function createAction()
 {
     $this->checkAuth(AdminResources::PRODUCT, [], AccessManager::CREATE);
     $form = $this->createForm(ApiForm::PRODUCT_CREATION, 'form', [], ['csrf_protection' => false]);
     try {
         $creationForm = $this->validateForm($form);
         $event = new ProductCreateEvent();
         $event->bindForm($creationForm);
         $this->dispatch(TheliaEvents::PRODUCT_CREATE, $event);
         $product = $event->getProduct();
         $updateEvent = new ProductUpdateEvent($product->getId());
         $updateEvent->bindForm($creationForm);
         $this->dispatch(TheliaEvents::PRODUCT_UPDATE, $updateEvent);
         $this->getRequest()->query->set('lang', $creationForm->get('locale')->getData());
         $response = $this->getProductAction($product->getId());
         $response->setStatusCode(201);
         return $response;
     } catch (\Exception $e) {
         return JsonResponse::create(['error' => $e->getMessage()], 500);
     }
 }