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); } }