feat: crud da wishlist concluido, testado e backdoor removido

This commit is contained in:
2026-05-03 22:45:40 -05:00
parent f511621033
commit 652f33ec8a
2 changed files with 42 additions and 8 deletions

View File

@@ -12,7 +12,6 @@ class WishlistController extends Controller
*/
public function store(Request $request)
{
// 1. Valida se o Frontend mandou o ID do jogo corretamente
$validated = $request->validate([
'game_id' => 'required|string',
'is_wishlist' => 'boolean',
@@ -21,12 +20,8 @@ class WishlistController extends Controller
'price_alert' => 'boolean',
]);
// 2. Pega o ID do usuário que a nossa fechadura extraiu do Token JWT
$userId = $request->get('auth_id');
// 3. Salva no banco.
// O updateOrCreate procura se esse usuário já tem esse jogo na lista.
// Se tiver, ele apenas atualiza as flags (ex: ativa o price_alert). Se não tiver, ele cria um novo.
$wishlistItem = WishlistItem::updateOrCreate(
[
'user_id' => $userId,
@@ -40,10 +35,44 @@ class WishlistController extends Controller
]
);
// 4. Devolve a resposta de sucesso
return response()->json([
'message' => 'Jogo salvo na lista com sucesso!',
'data' => $wishlistItem
], 201);
}
/**
* Lista todos os jogos salvos pelo usuário logado.
*/
public function index(Request $request)
{
$userId = $request->get('auth_id');
// Busca no banco todos os registros que pertencem a este usuário
$items = WishlistItem::where('user_id', $userId)->get();
return response()->json([
'data' => $items
], 200);
}
/**
* Remove um jogo da lista do usuário.
*/
public function destroy(Request $request, $game_id)
{
$userId = $request->get('auth_id');
// Procura o jogo específico deste usuário e deleta
$deleted = WishlistItem::where('user_id', $userId)
->where('game_id', $game_id)
->delete();
// Se o jogo não existia na lista, avisa o Frontend
if (!$deleted) {
return response()->json(['message' => 'Jogo não encontrado na sua lista.'], 404);
}
return response()->json(['message' => 'Jogo removido com sucesso!'], 200);
}
}