atualizacao rankings
This commit is contained in:
@@ -7,31 +7,41 @@ use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* @group Rankings
|
||||
* APIs para visualização de rankings de jogos
|
||||
*/
|
||||
class GameController extends Controller
|
||||
{
|
||||
/**
|
||||
* Ranking Geral
|
||||
* * Retorna o top 10 jogos baseado no período informado.
|
||||
* @queryParam period string required O período do ranking (weekly, monthly, yearly). Example: weekly
|
||||
* Top semanal
|
||||
* * Retorna o ranking dos jogos com melhor desempenho na última semana.
|
||||
*/
|
||||
public function generalRanking(Request $request)
|
||||
public function weeklyRanking()
|
||||
{
|
||||
$period = $request->query('period', 'weekly');
|
||||
$column = "{$period}_points";
|
||||
|
||||
// Validação simples
|
||||
if (!in_array($period, ['weekly', 'monthly', 'yearly'])) {
|
||||
return response()->json(['error' => 'Período inválido'], 400);
|
||||
}
|
||||
|
||||
$games = Game::orderBy($column, 'desc')->take(10)->get();
|
||||
$games = Game::orderBy('weekly_points', 'desc')->take(10)->get();
|
||||
return response()->json($games);
|
||||
}
|
||||
|
||||
/**
|
||||
* Jogos Mais Jogados
|
||||
* Top mensal
|
||||
* * Retorna o ranking dos jogos com melhor desempenho no último mês.
|
||||
*/
|
||||
public function monthlyRanking()
|
||||
{
|
||||
$games = Game::orderBy('monthly_points', 'desc')->take(10)->get();
|
||||
return response()->json($games);
|
||||
}
|
||||
|
||||
/**
|
||||
* Top anual
|
||||
* * Retorna o ranking dos jogos com melhor desempenho no último ano.
|
||||
*/
|
||||
public function yearlyRanking()
|
||||
{
|
||||
$games = Game::orderBy('yearly_points', 'desc')->take(10)->get();
|
||||
return response()->json($games);
|
||||
}
|
||||
|
||||
/**
|
||||
* Jogos mais jogados
|
||||
* * Retorna o top 10 jogos com base no número de jogadores ativos.
|
||||
*/
|
||||
public function mostPlayed()
|
||||
@@ -40,6 +50,23 @@ class GameController extends Controller
|
||||
return response()->json($games);
|
||||
}
|
||||
|
||||
/**
|
||||
* Histórico de ranking
|
||||
* * Retorna a evolução de um jogo específico ao longo do tempo.
|
||||
* @urlParam id int required O ID do jogo. Example: 1
|
||||
*/
|
||||
public function history($id)
|
||||
{
|
||||
$game = Game::findOrFail($id);
|
||||
return response()->json([
|
||||
'game' => $game->name,
|
||||
'history' => [
|
||||
['period' => 'Semana 1', 'points' => $game->weekly_points],
|
||||
['period' => 'Mês Atual', 'points' => $game->monthly_points],
|
||||
['period' => 'Ano Atual', 'points' => $game->yearly_points],
|
||||
]
|
||||
]);
|
||||
}
|
||||
/**
|
||||
* Ranking por Plataforma
|
||||
* * Retorna os jogos mais bem ranqueados de uma plataforma específica.
|
||||
|
||||
Reference in New Issue
Block a user