Files
leonm 8b60283eeb
CI / 🧪 Tests Laravel (push) Successful in 2m34s
CI / 🐳 Build & Push Images (push) Successful in 2m26s
feat: translation codes
2026-08-14 12:46:29 +02:00

49 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Actions\BlockUser;
use App\Http\Resources\BlockedUserResource;
use App\Models\User;
use App\Models\UserBlock;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use Illuminate\Http\Response;
class UserBlockController extends Controller
{
public function index(Request $request): AnonymousResourceCollection
{
$perPage = max(1, min($request->integer('per_page', 15), 100));
$blockedUsers = $request->user()
->blockedUsers()
->orderByPivotDesc('created_at')
->paginate($perPage)
->withQueryString();
return BlockedUserResource::collection($blockedUsers);
}
public function store(Request $request, User $user, BlockUser $blockUser): JsonResponse
{
abort_if($request->user()->is($user), 422, 'CANNOT_BLOCK_SELF');
$blockUser->execute($request->user(), $user);
return response()->json([
'code' => 'USER_BLOCKED',
]);
}
public function destroy(Request $request, User $user): Response
{
UserBlock::query()
->where('blocker_id', $request->user()->getKey())
->where('blocked_id', $user->getKey())
->delete();
return response()->noContent();
}
}