File "TradeSignals.php"

Full Path: /home/fundopuh/trader.fxex.org/app/Http/Livewire/Admin/Signal/TradeSignals.php
File size: 4.78 KB
MIME-type: text/x-php
Charset: utf-8

<?php  
// this Code is Cracked by dharunMods-YouTube-Channel

namespace App\Http\Livewire\Admin\Signal;

use App\Notifications\PostForexSignal;
use App\Notifications\UpdateForexSignalResult;
use App\Services\HelperService;
use App\Services\SignalService;
use App\Traits\PingServer;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Notification;
use Livewire\Component;

class TradeSignals extends Component
{
    use PingServer;
    public $signals;
    public $tradeDirection = 'Sell';
    public $tradePair = '';
    public $price = '';
    public $stopLoss = '';
    public $takeProfit1 = '';
    public $takeProfit2 = '';
    public $buyStop = '';
    public $sellStop = '';
    public $buyLimit = '';
    public $sellLimit = '';
    public $signalId;
    public $newSignal = false;
    public $signalResult = '';

    public function mount(SignalService $signal): void
    {
        $this->signals = collect([]);

        $signals = $signal->signals();

        if (Arr::exists($signals, 'error') && $signals['error'] == true) {
            session()->flash('message', $signals['errorMessage']);
        } else {
            $this->signals = collect($signals);
        }
    }

    public function render()
    {
        return view('livewire.admin.signal.trade-signals');
    }

    public function newSignal(): void
    {
        $this->newSignal = true;
    }

    public function cancel(): void
    {
        $this->newSignal = false;
    }

    public function setSignalId(int $var): void
    {
        $this->signalId = $var;
    }

    public function addSignal(): void
    {
        $response = $this->fetctApi('/post-signals', [
            'direction' => $this->tradeDirection,
            'pair' => $this->tradePair,
            'price' => $this->price,
            'tp1' => $this->takeProfit1,
            'tp2' => $this->takeProfit2,
            'sl1' => $this->stopLoss,
            'buy_stop' => $this->buyStop,
            'sell_stop' => $this->sellStop,
            'buy_limit' => $this->buyLimit,
            'sell_limit' => $this->sellLimit
        ], 'POST');

        if ($response->successful()) {
            $res = $this->fetctApi('/trading-signals');
            $data = $res['data'];
            if (Arr::exists($data, 'signals')) {
                $collection = collect($data['signals']);
                $this->signals = $collection;
            }
            // reset properties
            $this->reset([
                'tradeDirection',
                'tradePair',
                'price',
                'takeProfit1',
                'takeProfit2',
                'stopLoss',
                'buyStop',
                'sellStop',
                'buyLimit',
                'sellLimit'
            ]);
            $this->cancel();
        }
        HelperService::cacheForget('trading-signals');
        $respond = $this->backWithResponse($response);
        session()->flash($respond['type'], $respond['message']);
    }


    public function deleteSignal()
    {
        $response = $this->fetctApi("/delete-signal/{$this->signalId}");
        $respond = $this->backWithResponse($response);
        HelperService::cacheForget('trading-signals');
        session()->flash($respond['type'], $respond['message']);
        return redirect('admin/dashboard/trading-signals');
    }

    public function publish(int $signal)
    {
        $response = $this->fetctApi("/publish-signals/{$signal}");

        if ($response->failed()) {
            session()->flash('message', $response['message']);
            return;
        }
        $info = json_decode($response);

        if ($info->error) {
            session()->flash('message', $response['message']);
            return;
        }

        //send to telegram
        Notification::send([$info->data->chat_id], new PostForexSignal($info->data->message, $info->data->chat_id));
        $respond = $this->backWithResponse($response);
        HelperService::cacheForget('trading-signals');
        session()->flash($respond['type'], $respond['message']);
        return redirect('admin/dashboard/trading-signals');
    }

    public function updateResult()
    {
        $response = $this->fetctApi('/update-result', [
            'signalId' => $this->signalId,
            'result' => $this->signalResult
        ], 'POST');

        if ($response->failed()) {
            session()->flash('message', $response['message']);
            return;
        }

        $info = json_decode($response);

        //send to telegram
        Notification::send([$info->data->chat_id], new UpdateForexSignalResult($info->data->message, $info->data->chat_id));
        HelperService::cacheForget('trading-signals');
        $respond = $this->backWithResponse($response);
        session()->flash($respond['type'], $respond['message']);

        return redirect('admin/dashboard/trading-signals');
    }
}