From 2ceaaca44f1b82fc64d961e2fb4f4aaeade7e736 Mon Sep 17 00:00:00 2001
From: Yassine Doghri <yassine@doghri.fr>
Date: Wed, 9 Jun 2021 16:08:24 +0000
Subject: [PATCH] fix(install): redirect manually to install wizard on first
 visit

update php dependencies
---
 app/Controllers/HomeController.php |  8 ++++--
 app/Controllers/NoteController.php | 23 +++++++---------
 composer.lock                      | 42 +++++++++++++++---------------
 3 files changed, 36 insertions(+), 37 deletions(-)

diff --git a/app/Controllers/HomeController.php b/app/Controllers/HomeController.php
index 26c7e480b6..1daacbd6f3 100644
--- a/app/Controllers/HomeController.php
+++ b/app/Controllers/HomeController.php
@@ -11,7 +11,9 @@ declare(strict_types=1);
 namespace App\Controllers;
 
 use App\Models\PodcastModel;
+use CodeIgniter\Database\Exceptions\DatabaseException;
 use CodeIgniter\HTTP\RedirectResponse;
+use Config\Services;
 use mysqli_sql_exception;
 
 class HomeController extends BaseController
@@ -20,10 +22,12 @@ class HomeController extends BaseController
     {
         try {
             $allPodcasts = (new PodcastModel())->findAll();
-        } catch (mysqli_sql_exception) {
+        } catch (mysqli_sql_exception | DatabaseException) {
             // An error was caught when retrieving the podcasts from the database.
             // Redirecting to install page because it is likely that Castopod Host has not been installed yet.
-            return redirect()->route('install');
+            // NB: as base_url wouldn't have been defined here, redirect to install wizard manually
+            $route = Services::routes()->reverseRoute('install');
+            return redirect()->to(rtrim(host_url(), '/') . $route);
         }
 
         // check if there's only one podcast to redirect user to it
diff --git a/app/Controllers/NoteController.php b/app/Controllers/NoteController.php
index a5ddd3d835..0182fd29f6 100644
--- a/app/Controllers/NoteController.php
+++ b/app/Controllers/NoteController.php
@@ -214,20 +214,15 @@ class NoteController extends ActivityPubNoteController
         }
 
         $action = $this->request->getPost('action');
-        /** @phpstan-ignore-next-line */
-        switch ($action) {
-            case 'favourite':
-                return $this->attemptFavourite();
-            case 'reblog':
-                return $this->attemptReblog();
-            case 'reply':
-                return $this->attemptReply();
-            default:
-                return redirect()
-                    ->back()
-                    ->withInput()
-                    ->with('errors', 'error');
-        }
+        return match ($action) {
+            'favourite' => $this->attemptFavourite(),
+            'reblog' => $this->attemptReblog(),
+            'reply' => $this->attemptReply(),
+            default => redirect()
+                ->back()
+                ->withInput()
+                ->with('errors', 'error'),
+        };
     }
 
     public function remoteAction(string $action): string
diff --git a/composer.lock b/composer.lock
index a789c2034a..ea06662a10 100644
--- a/composer.lock
+++ b/composer.lock
@@ -66,12 +66,12 @@
       "source": {
         "type": "git",
         "url": "https://github.com/codeigniter4/CodeIgniter4.git",
-        "reference": "67e6f3d9eaff82d003ad30058857f37536ea4252"
+        "reference": "18f5611fc4462871d1de56bb6a44754916397e09"
       },
       "dist": {
         "type": "zip",
-        "url": "https://api.github.com/repos/codeigniter4/CodeIgniter4/zipball/67e6f3d9eaff82d003ad30058857f37536ea4252",
-        "reference": "67e6f3d9eaff82d003ad30058857f37536ea4252",
+        "url": "https://api.github.com/repos/codeigniter4/CodeIgniter4/zipball/18f5611fc4462871d1de56bb6a44754916397e09",
+        "reference": "18f5611fc4462871d1de56bb6a44754916397e09",
         "shasum": ""
       },
       "require": {
@@ -93,7 +93,7 @@
         "phpstan/phpstan": "0.12.88",
         "phpunit/phpunit": "^9.1",
         "predis/predis": "^1.1",
-        "rector/rector": "0.11.14",
+        "rector/rector": "0.11.16",
         "symplify/package-builder": "^9.3"
       },
       "suggest": {
@@ -135,20 +135,20 @@
         "slack": "https://codeigniterchat.slack.com",
         "issues": "https://github.com/codeigniter4/CodeIgniter4/issues"
       },
-      "time": "2021-06-07T06:25:13+00:00"
+      "time": "2021-06-09T13:09:11+00:00"
     },
     {
       "name": "composer/ca-bundle",
-      "version": "1.2.9",
+      "version": "1.2.10",
       "source": {
         "type": "git",
         "url": "https://github.com/composer/ca-bundle.git",
-        "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5"
+        "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8"
       },
       "dist": {
         "type": "zip",
-        "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
-        "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
+        "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8",
+        "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8",
         "shasum": ""
       },
       "require": {
@@ -187,7 +187,7 @@
       "support": {
         "irc": "irc://irc.freenode.org/composer",
         "issues": "https://github.com/composer/ca-bundle/issues",
-        "source": "https://github.com/composer/ca-bundle/tree/1.2.9"
+        "source": "https://github.com/composer/ca-bundle/tree/1.2.10"
       },
       "funding": [
         {
@@ -203,7 +203,7 @@
           "type": "tidelift"
         }
       ],
-      "time": "2021-01-12T12:10:35+00:00"
+      "time": "2021-06-07T13:58:28+00:00"
     },
     {
       "name": "essence/dom",
@@ -1077,12 +1077,12 @@
       "source": {
         "type": "git",
         "url": "https://github.com/lonnieezell/myth-auth.git",
-        "reference": "fb0c8b8cae5b796d4f6d89e74ce6cab07966cdc1"
+        "reference": "4599540dab891d04df14e3732ff7757292a8620d"
       },
       "dist": {
         "type": "zip",
-        "url": "https://api.github.com/repos/lonnieezell/myth-auth/zipball/fb0c8b8cae5b796d4f6d89e74ce6cab07966cdc1",
-        "reference": "fb0c8b8cae5b796d4f6d89e74ce6cab07966cdc1",
+        "url": "https://api.github.com/repos/lonnieezell/myth-auth/zipball/4599540dab891d04df14e3732ff7757292a8620d",
+        "reference": "4599540dab891d04df14e3732ff7757292a8620d",
         "shasum": ""
       },
       "require": {
@@ -1135,7 +1135,7 @@
           "type": "patreon"
         }
       ],
-      "time": "2021-06-04T13:20:03+00:00"
+      "time": "2021-06-08T15:38:01+00:00"
     },
     {
       "name": "opawg/user-agents-php",
@@ -3328,16 +3328,16 @@
     },
     {
       "name": "rector/rector",
-      "version": "0.11.14",
+      "version": "0.11.16",
       "source": {
         "type": "git",
         "url": "https://github.com/rectorphp/rector.git",
-        "reference": "49dd2ff88bd67d5126557db91c446c322f5bbcef"
+        "reference": "5c030ad7cefa59075e0fe14604cd4982ceaa2bd0"
       },
       "dist": {
         "type": "zip",
-        "url": "https://api.github.com/repos/rectorphp/rector/zipball/49dd2ff88bd67d5126557db91c446c322f5bbcef",
-        "reference": "49dd2ff88bd67d5126557db91c446c322f5bbcef",
+        "url": "https://api.github.com/repos/rectorphp/rector/zipball/5c030ad7cefa59075e0fe14604cd4982ceaa2bd0",
+        "reference": "5c030ad7cefa59075e0fe14604cd4982ceaa2bd0",
         "shasum": ""
       },
       "require": {
@@ -3370,7 +3370,7 @@
       "description": "Prefixed and PHP 7.1 downgraded version of rector/rector",
       "support": {
         "issues": "https://github.com/rectorphp/rector/issues",
-        "source": "https://github.com/rectorphp/rector/tree/0.11.14"
+        "source": "https://github.com/rectorphp/rector/tree/0.11.16"
       },
       "funding": [
         {
@@ -3378,7 +3378,7 @@
           "type": "github"
         }
       ],
-      "time": "2021-06-05T21:48:47+00:00"
+      "time": "2021-06-08T08:41:04+00:00"
     },
     {
       "name": "rector/rector-phpstan-rules",
-- 
GitLab