diff --git a/app/Http/Controllers/V1/SuggestionController.php b/app/Http/Controllers/V1/SuggestionController.php index 988d8a3..42eddbe 100644 --- a/app/Http/Controllers/V1/SuggestionController.php +++ b/app/Http/Controllers/V1/SuggestionController.php @@ -5,7 +5,6 @@ namespace App\Http\Controllers\V1; use App\Enums\SuggestionStatus; -use App\Enums\VoteType; use App\Http\Controllers\Controller; use App\Http\Requests\SuggestionRequest; use App\Models\Suggestion; @@ -31,25 +30,6 @@ public function store(Trip $trip, SuggestionRequest $suggestionRequest): Redirec return redirect()->route('trips.show', ['trip' => $trip]); } - /** - * This can and should be moved to its own controller - * - * one user can vote only once - */ - public function vote(Suggestion $suggestion, Request $request): RedirectResponse - { - $validated = $request->validate([ - 'type' => ['required', new Enum(VoteType::class)], - ]); - - $suggestion->vote()->updateOrCreate([ - 'user_id' => auth()->id(), - 'suggestion_id' => $suggestion->id, - ], $validated); - - return redirect()->back(); - } - /** * updates status for a suggestion */ diff --git a/app/Http/Controllers/V1/TripController.php b/app/Http/Controllers/V1/TripController.php index aa87aec..02b5067 100644 --- a/app/Http/Controllers/V1/TripController.php +++ b/app/Http/Controllers/V1/TripController.php @@ -9,7 +9,6 @@ use App\Models\Trip; use App\Models\User; use App\Repositories\Contracts\TripRepositoryContract; -use App\Repositories\TripRepository; use Illuminate\Database\Eloquent\Collection; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Cache; @@ -17,9 +16,6 @@ class TripController extends Controller { - /** - * @param TripRepository $trip - */ public function __construct( protected TripRepositoryContract $trip ) {} @@ -93,6 +89,7 @@ public function update(TripRequest $tripRequest, Trip $trip): RedirectResponse /** * Caches users and retrieves them. + * this can be moved to a CacheService * * @return Collection */ diff --git a/app/Http/Controllers/VoteController.php b/app/Http/Controllers/VoteController.php new file mode 100644 index 0000000..afe772a --- /dev/null +++ b/app/Http/Controllers/VoteController.php @@ -0,0 +1,26 @@ +validate([ + 'type' => ['required', new Enum(VoteType::class)], + ]); + + $suggestion->vote()->updateOrCreate([ + 'user_id' => auth()->id(), + 'suggestion_id' => $suggestion->id, + ], $validated); + + return redirect()->back(); + } +} diff --git a/resources/views/trips/index.blade.php b/resources/views/trips/index.blade.php index 37db3b8..07f5e5f 100644 --- a/resources/views/trips/index.blade.php +++ b/resources/views/trips/index.blade.php @@ -13,7 +13,14 @@
@foreach($trips['owns'] as $trip) - {{ $trip->title }} + $trip->status === "active", + "p-2 opacity-50 border-gray-500 border rounded hover:bg-gray-100 my-2" => $trip->status === "completed" + ]) + class="p-2 border-gray-500 border rounded hover:bg-gray-100 my-2">{{ $trip->title }} + @if( $trip->status === "completed") - COMPLETED @endif + @endforeach
diff --git a/routes/web.php b/routes/web.php index 87e747b..0076433 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,6 +3,7 @@ use App\Http\Controllers\ProfileController; use App\Http\Controllers\V1\SuggestionController; use App\Http\Controllers\V1\TripController; +use App\Http\Controllers\VoteController; use Illuminate\Support\Facades\Route; Route::get('/', function () { @@ -31,7 +32,7 @@ // Route::middleware('can:view,suggestion.trip')->group(function () { Route::get('/suggestions/{suggestion}/status', [SuggestionController::class, 'status'])->name('suggestions.status'); - Route::get('/suggestions/{suggestion}/vote', [SuggestionController::class, 'vote'])->name('suggestions.vote'); + Route::get('/suggestions/{suggestion}/vote', [VoteController::class, 'vote'])->name('suggestions.vote'); }); // They can update the trips