Files
moonwell-web/app/Http/Controllers/Api/LauncherAccountController.php
T

51 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Services\BalanceService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use OpenApi\Attributes as OA;
class LauncherAccountController extends Controller
{
#[OA\Get(
path: '/api/launcher/account',
summary: 'Получить информацию об аккаунте',
description: 'Возвращает имя и текущий баланс авторизованного игрового аккаунта.',
tags: ['Launcher'],
security: [['bearerAuth' => []]],
responses: [
new OA\Response(
response: 200,
description: 'Информация об аккаунте',
content: new OA\JsonContent(
properties: [
new OA\Property(property: 'username', type: 'string', example: 'PLAYER'),
new OA\Property(property: 'balance', type: 'string', example: '1250.00'),
],
),
),
new OA\Response(
response: 401,
description: 'Не авторизован',
content: new OA\JsonContent(
properties: [
new OA\Property(property: 'message', type: 'string', example: 'Unauthenticated.'),
],
),
),
],
)]
public function show(Request $request, BalanceService $balances): JsonResponse
{
$account = $request->user();
return response()->json([
'username' => (string) $account->username,
'balance' => $balances->balance((int) $account->id),
]);
}
}