public function scores()
{
// FIXME: scores are obtained via filename/checksum lookup for legacy reason (temporarily)
$filename = Request::input('f');
$checksum = Request::input('c');
$per_page = min(Request::input('n', 50), 50);
$page = max(Request::input('p', 1), 1);
$beatmap = Beatmap::where('filename', $filename)->where('checksum', $checksum)->firstorFail();
$beatmap_meta = json_item($beatmap, new BeatmapTransformer());
$scores = $beatmap->scoresBest()->defaultListing()->forPage($page, $per_page);
if ($beatmap->approved >= 1) {
$beatmap_scores = json_collection($scores->get(), new ScoreTransformer());
} else {
$beatmap_scores = [];
}
return Response::json(['beatmap' => $beatmap_meta, 'scores' => $beatmap_scores]);
}