You've already forked Atomcms-edit
refactor: add return type hints to all controller methods
Added proper return types (View, RedirectResponse, JsonResponse, Collection) to 40+ controller methods across 16 controllers. Also added missing imports for Illuminate response types and tightened parameter types (e.g. InstallationController::showStep now uses int instead of mixed).
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use App\Models\SocialAccount;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
@@ -14,7 +15,7 @@ use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
class SocialAuthController extends Controller
|
||||
{
|
||||
public function redirect(string $provider)
|
||||
public function redirect(string $provider): RedirectResponse
|
||||
{
|
||||
$enabled = $this->isProviderEnabled($provider);
|
||||
|
||||
@@ -26,7 +27,7 @@ class SocialAuthController extends Controller
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
public function callback(string $provider)
|
||||
public function callback(string $provider): RedirectResponse
|
||||
{
|
||||
$enabled = $this->isProviderEnabled($provider);
|
||||
|
||||
@@ -124,12 +125,12 @@ class SocialAuthController extends Controller
|
||||
return $username;
|
||||
}
|
||||
|
||||
protected function redirectAfterLogin()
|
||||
protected function redirectAfterLogin(): RedirectResponse
|
||||
{
|
||||
return redirect()->intended('/');
|
||||
}
|
||||
|
||||
public function unlink(Request $request, string $provider)
|
||||
public function unlink(Request $request, string $provider): RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
namespace App\Http\Controllers\Badge;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class BadgeController extends Controller
|
||||
{
|
||||
public function show()
|
||||
public function show(): View
|
||||
{
|
||||
$cost = 150;
|
||||
$currencyType = 'credits';
|
||||
@@ -50,7 +52,7 @@ class BadgeController extends Controller
|
||||
return view('draw-badge', ['cost' => $cost, 'currencyType' => $currencyType, 'folderError' => $folderError, 'errorMessage' => $errorMessage]);
|
||||
}
|
||||
|
||||
public function buy(Request $request)
|
||||
public function buy(Request $request): RedirectResponse
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ class LeaderboardController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
private function retrieveSettings($column)
|
||||
private function retrieveSettings(string $column): \Illuminate\Database\Eloquent\Collection
|
||||
{
|
||||
return UserSetting::query()
|
||||
->select(['user_id', $column])
|
||||
|
||||
@@ -9,10 +9,11 @@ use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class RadioLeaderboardController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request)
|
||||
public function __invoke(Request $request): View
|
||||
{
|
||||
$period = $request->get('period', 'all');
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Community\Staff;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Community\Staff\WebsiteOpenPosition;
|
||||
use App\Models\Community\Staff\WebsiteStaffApplications;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
@@ -32,7 +33,7 @@ class StaffApplicationsController extends Controller
|
||||
return view('community.staff-apply', ['position' => $position]);
|
||||
}
|
||||
|
||||
public function store(Request $request, WebsiteOpenPosition $position)
|
||||
public function store(Request $request, WebsiteOpenPosition $position): RedirectResponse
|
||||
{
|
||||
abort_unless($position->position_kind === 'rank', 404);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Community\Staff;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Community\Staff\WebsiteOpenPosition;
|
||||
use App\Models\Community\Staff\WebsiteStaffApplications;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
@@ -48,7 +49,7 @@ class WebsiteTeamApplicationsController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request, WebsiteOpenPosition $position)
|
||||
public function store(Request $request, WebsiteOpenPosition $position): RedirectResponse
|
||||
{
|
||||
abort_unless($position->position_kind === 'team', 404);
|
||||
|
||||
|
||||
@@ -5,10 +5,11 @@ namespace App\Http\Controllers\Help;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Help\WebsiteHelpCenterCategory;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class HelpCenterController extends Controller
|
||||
{
|
||||
public function __invoke()
|
||||
public function __invoke(): View
|
||||
{
|
||||
$categories = Cache::remember('help_center_categories', 300, fn () => WebsiteHelpCenterCategory::orderBy('position')->get());
|
||||
|
||||
|
||||
@@ -6,11 +6,14 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\WebsiteTicketFormRequest;
|
||||
use App\Models\Help\WebsiteHelpCenterCategory;
|
||||
use App\Models\Help\WebsiteHelpCenterTicket;
|
||||
use App\Models\Help\WebsiteHelpCenterTicketReply;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class TicketController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(): View|RedirectResponse
|
||||
{
|
||||
if (! hasPermission('manage_website_tickets')) {
|
||||
return redirect()->back()->with([
|
||||
@@ -23,7 +26,7 @@ class TicketController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function create()
|
||||
public function create(): View
|
||||
{
|
||||
return view('help-center.tickets.create', [
|
||||
'categories' => WebsiteHelpCenterCategory::get(),
|
||||
@@ -31,14 +34,14 @@ class TicketController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(WebsiteTicketFormRequest $request)
|
||||
public function store(WebsiteTicketFormRequest $request): RedirectResponse
|
||||
{
|
||||
Auth::user()->tickets()->create($request->validated());
|
||||
|
||||
return redirect()->back()->with('success', __('Ticket submitted!'));
|
||||
}
|
||||
|
||||
public function edit(WebsiteHelpCenterTicket $ticket)
|
||||
public function edit(WebsiteHelpCenterTicket $ticket): View|RedirectResponse
|
||||
{
|
||||
if (! $ticket->canManageTicket()) {
|
||||
return redirect()->back()->with([
|
||||
@@ -59,7 +62,7 @@ class TicketController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(WebsiteHelpCenterTicket $ticket, WebsiteTicketFormRequest $request)
|
||||
public function update(WebsiteHelpCenterTicket $ticket, WebsiteTicketFormRequest $request): RedirectResponse
|
||||
{
|
||||
if (! $ticket->canManageTicket()) {
|
||||
return redirect()->back()->with([
|
||||
@@ -72,7 +75,7 @@ class TicketController extends Controller
|
||||
return to_route('help-center.ticket.show', $ticket)->with('success', __('Ticket updated!'));
|
||||
}
|
||||
|
||||
public function show(WebsiteHelpCenterTicket $ticket)
|
||||
public function show(WebsiteHelpCenterTicket $ticket): View|RedirectResponse
|
||||
{
|
||||
if (! $ticket->canManageTicket()) {
|
||||
return redirect()->back()->with([
|
||||
@@ -92,7 +95,7 @@ class TicketController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(WebsiteHelpCenterTicket $ticket)
|
||||
public function destroy(WebsiteHelpCenterTicket $ticket): RedirectResponse
|
||||
{
|
||||
if (! $ticket->canDeleteTicket()) {
|
||||
return redirect()->back()->with([
|
||||
@@ -105,7 +108,7 @@ class TicketController extends Controller
|
||||
return to_route('me.show')->with('success', __('The ticket has been deleted!'));
|
||||
}
|
||||
|
||||
public function destroyReply(WebsiteHelpCenterTicketReply $reply)
|
||||
public function destroyReply(WebsiteHelpCenterTicketReply $reply): RedirectResponse
|
||||
{
|
||||
if (! $reply->canDeleteReply()) {
|
||||
return redirect()->back()->with([
|
||||
@@ -118,7 +121,7 @@ class TicketController extends Controller
|
||||
return redirect()->back()->with('success', __('The reply has been deleted!'));
|
||||
}
|
||||
|
||||
public function toggleTicketStatus(WebsiteHelpCenterTicket $ticket)
|
||||
public function toggleTicketStatus(WebsiteHelpCenterTicket $ticket): RedirectResponse
|
||||
{
|
||||
if (! $ticket->canManageTicket()) {
|
||||
return redirect()->back()->with([
|
||||
|
||||
@@ -7,10 +7,11 @@ namespace App\Http\Controllers\Help;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\WebsiteTicketReplyFormRequest;
|
||||
use App\Models\Help\WebsiteHelpCenterTicket;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
|
||||
class TicketReplyController extends Controller
|
||||
{
|
||||
public function store(WebsiteHelpCenterTicket $ticket, WebsiteTicketReplyFormRequest $request)
|
||||
public function store(WebsiteHelpCenterTicket $ticket, WebsiteTicketReplyFormRequest $request): RedirectResponse
|
||||
{
|
||||
if (! $ticket->isOpen()) {
|
||||
return redirect()->back()->with([
|
||||
|
||||
@@ -7,18 +7,21 @@ use App\Models\Miscellaneous\WebsiteInstallation;
|
||||
use App\Models\Miscellaneous\WebsiteSetting;
|
||||
use App\Rules\ValidateInstallationKeyRule;
|
||||
use Exception;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class InstallationController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(): View
|
||||
{
|
||||
return view('installation.index');
|
||||
}
|
||||
|
||||
public function storeInstallationKey(Request $request)
|
||||
public function storeInstallationKey(Request $request): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
'installation_key' => ['required', 'string', 'max:255', new ValidateInstallationKeyRule],
|
||||
@@ -32,16 +35,16 @@ class InstallationController extends Controller
|
||||
return to_route('installation.show-step', 1);
|
||||
}
|
||||
|
||||
public function showStep($currentStep)
|
||||
public function showStep(int $currentStep): View
|
||||
{
|
||||
$settings = $this->getSettingsForStep((int) $currentStep);
|
||||
$settings = $this->getSettingsForStep($currentStep);
|
||||
|
||||
return view('installation.step-' . $currentStep, [
|
||||
'settings' => $settings,
|
||||
]);
|
||||
}
|
||||
|
||||
public function saveStepSettings(Request $request)
|
||||
public function saveStepSettings(Request $request): RedirectResponse
|
||||
{
|
||||
$this->updateSettings($request);
|
||||
|
||||
@@ -50,14 +53,14 @@ class InstallationController extends Controller
|
||||
return to_route('installation.show-step', WebsiteInstallation::first()->step);
|
||||
}
|
||||
|
||||
public function previousStep()
|
||||
public function previousStep(): RedirectResponse
|
||||
{
|
||||
WebsiteInstallation::first()->decrement('step');
|
||||
|
||||
return to_route('installation.show-step', WebsiteInstallation::first()->step);
|
||||
}
|
||||
|
||||
public function restartInstallation()
|
||||
public function restartInstallation(): RedirectResponse
|
||||
{
|
||||
WebsiteInstallation::first()->update([
|
||||
'step' => 0,
|
||||
@@ -72,7 +75,7 @@ class InstallationController extends Controller
|
||||
return to_route('installation.index');
|
||||
}
|
||||
|
||||
public function completeInstallation()
|
||||
public function completeInstallation(): RedirectResponse
|
||||
{
|
||||
// Clear all caches before marking as complete
|
||||
Cache::forget('website_permissions');
|
||||
@@ -97,7 +100,7 @@ class InstallationController extends Controller
|
||||
// Cache will be automatically cleared by WebsiteSetting model events
|
||||
}
|
||||
|
||||
private function getSettingsForStep(int $step)
|
||||
private function getSettingsForStep(int $step): Collection
|
||||
{
|
||||
$settingsData = array_chunk(WebsiteSetting::all()->pluck('key')->toArray(), (int) ceil(WebsiteSetting::count() / 4));
|
||||
|
||||
|
||||
@@ -4,11 +4,14 @@ namespace App\Http\Controllers\Miscellaneous;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Miscellaneous\WebsiteSetting;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class LogoGeneratorController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(): View|RedirectResponse
|
||||
{
|
||||
if (! hasPermission('generate_logo')) {
|
||||
return to_route('me.show')->with([
|
||||
@@ -19,7 +22,7 @@ class LogoGeneratorController extends Controller
|
||||
return view('logo-generator');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
public function store(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(['logo' => 'required|image|mimes:jpeg,png,gif,webp|max:5120']);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class ShopController extends Controller
|
||||
private readonly PurchaseService $purchaseService,
|
||||
) {}
|
||||
|
||||
public function __invoke(?WebsiteShopCategory $category)
|
||||
public function __invoke(?WebsiteShopCategory $category): View
|
||||
{
|
||||
$query = WebsiteShopArticle::query()->orderBy('position');
|
||||
|
||||
|
||||
@@ -5,10 +5,11 @@ namespace App\Http\Controllers\Shop;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\ShopVoucherFormRequest;
|
||||
use App\Models\Shop\WebsiteShopVoucher;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
|
||||
class ShopVoucherController extends Controller
|
||||
{
|
||||
public function __invoke(ShopVoucherFormRequest $request)
|
||||
public function __invoke(ShopVoucherFormRequest $request): RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$voucher = WebsiteShopVoucher::where('code', $request->string('code'))->first();
|
||||
|
||||
@@ -6,18 +6,20 @@ use App\Http\Controllers\Controller;
|
||||
use App\Models\PasswordResetToken;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
public function __invoke()
|
||||
public function __invoke(): View
|
||||
{
|
||||
return view('auth.passwords.forget');
|
||||
}
|
||||
|
||||
public function submitForgetPassword(Request $request)
|
||||
public function submitForgetPassword(Request $request): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
'mail' => 'required|email',
|
||||
@@ -40,7 +42,7 @@ class ForgotPasswordController extends Controller
|
||||
return back()->with('success', __('We have e-mailed your password reset link!'));
|
||||
}
|
||||
|
||||
public function showResetPassword(Request $request, string $token)
|
||||
public function showResetPassword(Request $request, string $token): View|RedirectResponse
|
||||
{
|
||||
$prt = PasswordResetToken::select(['token', 'created_at'])->where('token', $token)->first();
|
||||
if ($prt === null) {
|
||||
@@ -58,7 +60,7 @@ class ForgotPasswordController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function submitResetPassword(Request $request, string $token)
|
||||
public function submitResetPassword(Request $request, string $token): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
'password' => 'required|min:8|confirmed',
|
||||
|
||||
@@ -8,11 +8,12 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\GuestbookFormRequest;
|
||||
use App\Models\User;
|
||||
use App\Models\User\WebsiteUserGuestbook;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class GuestbookController extends Controller
|
||||
{
|
||||
public function store(User $user, GuestbookFormRequest $request)
|
||||
public function store(User $user, GuestbookFormRequest $request): RedirectResponse
|
||||
{
|
||||
$this->validateGuestbookPost($user, $request);
|
||||
|
||||
@@ -24,7 +25,7 @@ class GuestbookController extends Controller
|
||||
return redirect()->back()->with('success', __('Your message has been posted.'));
|
||||
}
|
||||
|
||||
public function destroy(User $user, WebsiteUserGuestbook $guestbook)
|
||||
public function destroy(User $user, WebsiteUserGuestbook $guestbook): RedirectResponse
|
||||
{
|
||||
if ($guestbook->user_id !== Auth::id() && $guestbook->profile_id !== $user->id && Auth::user()->rank < (int) setting('min_staff_rank')) {
|
||||
return redirect()->back()->withErrors([
|
||||
@@ -37,7 +38,7 @@ class GuestbookController extends Controller
|
||||
return redirect()->back()->with('success', __('Your message has been deleted.'));
|
||||
}
|
||||
|
||||
private function validateGuestbookPost(User $user, GuestbookFormRequest $request)
|
||||
private function validateGuestbookPost(User $user, GuestbookFormRequest $request): ?RedirectResponse
|
||||
{
|
||||
if ($user->id === $request->user()->id) {
|
||||
return $this->redirectWithError(__('You cannot post a message on your own profile.'));
|
||||
@@ -49,7 +50,7 @@ class GuestbookController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
private function redirectWithError($message)
|
||||
private function redirectWithError(string $message): RedirectResponse
|
||||
{
|
||||
return redirect()->back()->withErrors(['message' => $message]);
|
||||
}
|
||||
|
||||
@@ -4,10 +4,11 @@ namespace App\Http\Controllers\User;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class UserReferralController extends Controller
|
||||
{
|
||||
public function __invoke(string $referralCode)
|
||||
public function __invoke(string $referralCode): View
|
||||
{
|
||||
if (! User::where('referral_code', $referralCode)->exists()) {
|
||||
abort(404);
|
||||
|
||||
Reference in New Issue
Block a user