From 69b83a3c288a88b2cc90c8fd87c9535877a279d6 Mon Sep 17 00:00:00 2001 From: Ben Croker <57572400+bencroker@users.noreply.github.com> Date: Fri, 9 Feb 2024 08:34:16 -0600 Subject: [PATCH 1/3] Use `asModelFailure` and `asModelSuccess` --- src/controllers/SaveController.php | 47 ++++++++---------------------- 1 file changed, 12 insertions(+), 35 deletions(-) diff --git a/src/controllers/SaveController.php b/src/controllers/SaveController.php index 293d786..c5a60fb 100644 --- a/src/controllers/SaveController.php +++ b/src/controllers/SaveController.php @@ -161,22 +161,11 @@ private function _returnSuccess(Entry $entry, $isSpam = false): Response ])); } - if (Craft::$app->getRequest()->getAcceptsJson()) { - return $this->asJson([ - 'success' => true, - 'id' => $entry->id, - 'title' => $entry->title, - 'authorUsername' => $entry->getAuthor()->username, - 'dateCreated' => DateTimeHelper::toIso8601($entry->dateCreated), - 'dateUpdated' => DateTimeHelper::toIso8601($entry->dateUpdated), - 'postDate' => $entry->postDate ? DateTimeHelper::toIso8601($entry->postDate) : null, - 'url' => $entry->getUrl(), - ]); - } - - $this->setSuccessFlash(Craft::t('guest-entries', 'Entry saved.')); - - return $this->redirectToPostedUrl($entry); + return $this->asModelSuccess( + $entry, + Craft::t('guest-entries', 'Entry saved.'), + $settings->entryVariable, + ); } /** @@ -184,9 +173,9 @@ private function _returnSuccess(Entry $entry, $isSpam = false): Response * * @param Settings $settings * @param Entry $entry - * @return Response|null + * @return Response */ - private function _returnError(Settings $settings, Entry $entry) + private function _returnError(Settings $settings, Entry $entry): Response { if ($this->hasEventHandlers(self::EVENT_AFTER_ERROR)) { $this->trigger(self::EVENT_AFTER_ERROR, new SaveEvent([ @@ -194,23 +183,11 @@ private function _returnError(Settings $settings, Entry $entry) ])); } - if (Craft::$app->getRequest()->getAcceptsJson()) { - return $this->asJson([ - 'success' => false, - 'errors' => $entry->getErrors(), - ]); - } - - $this->setFailFlash(Craft::t('guest-entries', 'Couldn’t save entry.')); - - // Send the entry back to the template - /** @var UrlManager $urlManager */ - $urlManager = Craft::$app->getUrlManager(); - $urlManager->setRouteParams([ - 'variables' => [$settings->entryVariable => $entry], - ]); - - return null; + return $this->asModelFailure( + $entry, + Craft::t('guest-entries', 'Couldn’t save entry.'), + $settings->entryVariable, + ); } /** From 604da614b685a77f34d4a0fcf9a0b7fbb83ab22b Mon Sep 17 00:00:00 2001 From: Ben Croker <57572400+bencroker@users.noreply.github.com> Date: Fri, 9 Feb 2024 08:36:23 -0600 Subject: [PATCH 2/3] Assume model name `entry` --- src/controllers/SaveController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/SaveController.php b/src/controllers/SaveController.php index c5a60fb..8cb4a17 100644 --- a/src/controllers/SaveController.php +++ b/src/controllers/SaveController.php @@ -164,7 +164,7 @@ private function _returnSuccess(Entry $entry, $isSpam = false): Response return $this->asModelSuccess( $entry, Craft::t('guest-entries', 'Entry saved.'), - $settings->entryVariable, + 'entry', ); } From 9780f55abbdefb7bc57ba9ade563304675bb45d1 Mon Sep 17 00:00:00 2001 From: Ben Croker <57572400+bencroker@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:20:50 -0600 Subject: [PATCH 3/3] Remove unused import --- src/controllers/SaveController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controllers/SaveController.php b/src/controllers/SaveController.php index 8cb4a17..e3c33a0 100644 --- a/src/controllers/SaveController.php +++ b/src/controllers/SaveController.php @@ -19,7 +19,6 @@ use craft\models\Section; use craft\web\Controller; use craft\web\Request; -use craft\web\UrlManager; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; use yii\web\Response;