Files

60 lines
1.4 KiB
PHP
Raw Permalink Normal View History

2026-04-28 16:10:27 +03:00
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Http\Resources\CityResource;
use App\Models\City;
use Illuminate\Http\Request;
class FavoriteController extends Controller
{
/**
* Get user's favorite cities
*/
public function index(Request $request)
{
$favorites = $request->user()
->favoriteCities()
->withCount('attractions')
->get();
return CityResource::collection($favorites);
}
/**
* Add city to favorites
*/
public function store(Request $request, City $city)
{
$user = $request->user();
// Check if already favorited
if ($user->favoriteCities()->where('city_id', $city->id)->exists()) {
return response()->json([
'message' => 'City already in favorites',
], 409);
}
$user->favoriteCities()->attach($city->id);
return response()->json([
'message' => 'City added to favorites',
'city' => new CityResource($city),
], 201);
}
/**
* Remove city from favorites
*/
public function destroy(Request $request, City $city)
{
$user = $request->user();
$user->favoriteCities()->detach($city->id);
return response()->json([
'message' => 'City removed from favorites',
]);
}
}