56 lines
2.1 KiB
PHP
56 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\ChangePasswordRequest;
|
|
use App\Services\AzerothCoreAccountService;
|
|
use App\Services\BalanceService;
|
|
use App\Services\GameClientDownloadService;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
use Throwable;
|
|
|
|
class CabinetController extends Controller
|
|
{
|
|
public function index(Request $request, AzerothCoreAccountService $accounts, BalanceService $balances): View
|
|
{
|
|
$user = $request->user();
|
|
|
|
return view('cabinet.index', [
|
|
'user' => $user,
|
|
'characters' => $accounts->charactersForAccount($user->id),
|
|
'clientFilename' => config('moonwell.client.object_key'),
|
|
'balance' => $balances->balance($user->id),
|
|
'balanceTransactions' => $balances->recentTransactions($user->id),
|
|
'minimumDeposit' => config('services.robokassa.minimum_amount'),
|
|
'maximumDeposit' => config('services.robokassa.maximum_amount'),
|
|
'tearsPerRuble' => config('services.robokassa.tears_per_ruble'),
|
|
]);
|
|
}
|
|
|
|
public function updatePassword(ChangePasswordRequest $request, AzerothCoreAccountService $accounts): RedirectResponse
|
|
{
|
|
$user = $request->user();
|
|
|
|
if (! $accounts->validatePassword($user, $request->string('current_password')->toString())) {
|
|
return back()->withErrors(['current_password' => 'Текущий пароль указан неверно.']);
|
|
}
|
|
|
|
$accounts->updatePassword($user, $request->string('password')->toString());
|
|
|
|
return back()->with('status', 'Пароль успешно обновлён.');
|
|
}
|
|
|
|
public function client(GameClientDownloadService $clientDownloadService): RedirectResponse
|
|
{
|
|
try {
|
|
return redirect()->away($clientDownloadService->temporaryUrl());
|
|
} catch (Throwable $exception) {
|
|
report($exception);
|
|
|
|
return back()->with('error', 'Не удалось получить ссылку на клиент. Попробуй ещё раз позже.');
|
|
}
|
|
}
|
|
}
|