HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/marketing.cfbon.ru/public_html/app/Http/Controllers/Loyalty/ScoresController.php
<?php

namespace App\Http\Controllers\Loyalty;

use App\Enums\ScopesAction;
use App\Http\Controllers\Controller;
use App\Http\Requests\Loyalty\ScoresRequest;
use App\Models\Guest;
use App\Services\IicoCardService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;

class ScoresController extends Controller
{
    public function index() : View
    {
        $userData = session('userData');
        $operationData = session('operationData');

        return view('loyalty.scores.index', [
            'scopesActions' => collect(ScopesAction::cases())
                ->mapWithKeys(fn($action) => [$action->value => $action->label()]),
            'userData' => $userData,
            'operationData' => $operationData,
        ]);
    }
    public function makeTransaction(Request $request, IicoCardService $iicoCardService): RedirectResponse
    {
        $actions = $request->input('actions') . 'Bonus';

        try {
            $iicoCardService->connect();
            if (method_exists($iicoCardService, $actions)) $iicoCardService->$actions($request->input('card_id'), $request->input('scopes'), 'тестовое');

            return redirect()->route('loyalty.scores.index')->with('success', 'Транзакция успешно завершена');
        } catch (\Exception $e) {
            return redirect()->route('loyalty.scores.index')->with('error', $e->getMessage());
        }
    }
    public function verificationUser(ScoresRequest $request) : RedirectResponse
    {
        $user = Guest::where('phone', $request->input('phoneOrCard'))
            ->orWhere('card_number', $request->input('phoneOrCard'))
            ->first();

        if ($user) {
            return redirect()->route('loyalty.scores.showUserInformationForm')->with('userData', $user)->with('operationData', $request->validated());
        } else {
            return redirect()->route('loyalty.scores.index')->with('error', 'Пользователь не найден');
        }
    }
    public function showUserInformationForm() : RedirectResponse|View
    {
        $userData = session('userData');
        $operationData = session('operationData');
        if (!$userData || !$operationData) return redirect()->route('loyalty.scores.index')->with('error', 'Сессия истекла');

        $operationType = ScopesAction::tryFrom(($operationData['actions'] ?? ''))->label();
        if (!$operationType) return redirect()->route('loyalty.scores.index')->with('error', 'Не задан тип операции');

        return view('loyalty.scores.userDataInformation', [
            'userData' => $userData,
            'operationData' => $operationData,
            'operationType' => $operationType,
        ]);
    }
}