Smile\ElasticsuiteThesaurus\Controller\Adminhtml\Thesaurus\Save::execute PHP Method

execute() public method

Save a Thesaurus
public execute ( ) : Magento\Backend\Model\View\Result\Redirect
return Magento\Backend\Model\View\Result\Redirect
    public function execute()
    {
        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
        $resultRedirect = $this->resultRedirectFactory->create();
        $data = $this->getRequest()->getPostValue();
        $redirectBack = $this->getRequest()->getParam('back', false);
        if ($data) {
            $identifier = $this->getRequest()->getParam('thesaurus_id');
            $model = $this->thesaurusFactory->create();
            if ($identifier) {
                $model->load($identifier);
                if (!$model->getThesaurusId()) {
                    $this->messageManager->addError(__('This thesaurus no longer exists.'));
                    return $resultRedirect->setPath('*/*/');
                }
            }
            $model->setData($data);
            try {
                $this->thesaurusRepository->save($model);
                $this->messageManager->addSuccess(__('You saved the thesaurus %1.', $model->getName()));
                $this->_objectManager->get('Magento\\Backend\\Model\\Session')->setFormData(false);
                if ($redirectBack) {
                    return $resultRedirect->setPath('*/*/edit', ['thesaurus_id' => $model->getId()]);
                }
                return $resultRedirect->setPath('*/*/');
            } catch (\Exception $e) {
                $this->messageManager->addError($e->getMessage());
                $this->_objectManager->get('Magento\\Backend\\Model\\Session')->setFormData($data);
                $returnParams = ['thesaurus_id' => $this->getRequest()->getParam('thesaurus_id'), 'type' => $this->getRequest()->getParam('type')];
                return $resultRedirect->setPath('*/*/edit', $returnParams);
            }
        }
        return $resultRedirect->setPath('*/*/');
    }