the browser-facing portion of osu!
at master 1.5 kB view raw
1<?php 2 3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 4// See the LICENCE file in the repository root for full licence text. 5 6namespace App\Http\Controllers\Users; 7 8use App\Http\Controllers\Controller; 9use App\Libraries\User\FindForProfilePage; 10use App\Models\Multiplayer\Room; 11use App\Transformers\UserTransformer; 12 13class MultiplayerController extends Controller 14{ 15 public function index($userId, $typeGroup) 16 { 17 $user = FindForProfilePage::find($userId); 18 19 if (!array_key_exists($typeGroup, Room::TYPE_GROUPS)) { 20 return ujs_redirect(route('users.multiplayer.index', ['typeGroup' => 'realtime', 'user' => $userId])); 21 } 22 23 $rawParams = request()->all(); 24 $params = [ 25 'cursor' => cursor_from_params($rawParams), 26 'limit' => get_int($rawParams['limit'] ?? null), 27 'mode' => 'participated', 28 'sort' => 'ended', 29 'type_group' => $typeGroup, 30 'user' => $user, 31 ]; 32 33 $json = Room::responseJson($params); 34 35 if (is_json_request()) { 36 return $json; 37 } 38 39 set_opengraph($user, 'multiplayer'); 40 41 $jsonUser = json_item( 42 $user, 43 (new UserTransformer())->setMode($user->playmode), 44 UserTransformer::PROFILE_HEADER_INCLUDES, 45 ); 46 47 return ext_view('users.multiplayer.index', compact('json', 'jsonUser', 'user')); 48 } 49}