feat: crud da wishlist concluido, testado e backdoor removido
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user