File "SubscriptionController.php"
Full Path: /home/fundopuh/trader.fxex.org/app/Http/Controllers/Admin/SubscriptionController.php
File size: 5.52 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// this Code is Cracked by dharunMods-YouTube-Channel
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Invoice;
use App\Models\Mt4Details;
use App\Models\Settings;
use App\Models\SymbolMap;
use App\Services\HelperService;
use App\Traits\PingServer;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
class SubscriptionController extends Controller
{
use PingServer;
public function myTradingSettings(): View
{
return view('admin.subscription.trading-settings', [
'title' => 'Trading Settings',
]);
}
public function symbolMapping(): View
{
return view('admin.subscription.map', [
'title' => 'Symbol Mapping',
]);
}
public function createCopyMasterAccount(Request $request): RedirectResponse
{
$response = $this->fetctApi('/create-copytrade-account', [
'login' => $request->login,
'password' => $request->password,
'serverName' => $request->serverName,
'name' => $request->name,
'leverage' => $request->leverage,
'account_type' => $request->acntype,
'baseCurrency' => $request->currency ? $request->currency : 'USD',
], 'POST');
if ($response->failed()) {
return redirect()->back()->with('message', $response['message']);
}
// remove the providers key from cache
HelperService::cacheForget('providers');
HelperService::cacheForget('copier-settings');
return redirect()->back()->with('success', $response['message']);
}
public function updateStrategy(Request $request)
{
if ($request->has('fixedRisk')) {
$modeCompliment = $request->fixedRisk;
} elseif ($request->has('fixedVolume')) {
$modeCompliment = $request->fixedVolume;
} elseif ($request->has('expression')) {
$modeCompliment = $request->expression;
} else {
$modeCompliment = '';
}
$settings = Settings::select(['commission_type', 'billing_period', 'percentage_fee', 'subscription_type'])->find(1);
if ($settings->subscription_type == 'Percentage' && is_null($request->commission_type) && is_null($request->billing_period) && is_null($request->percentage_fee)) {
return redirect()->back()->with('message', 'Please complete your account/strategy commission settings');
}
$payload = [
'account_id' => $request->account_id,
'mode' => $request->trademode,
'strategy_name' => $request->name,
'description' => $request->desc,
'modecompliment' => $modeCompliment,
'commission_scheme' => [
'commission_type' => $request->commission_type,
'billing_period' => $request->billing_period,
'percentage_fee' => intval($request->percentage_fee),
'subscription_type' => $settings->subscription_type,
],
'publish' => [
'publish' => $request->publishsignal,
'token' => $request->token,
'chatId' => $request->chatId,
'template' => 'FxTrader: ${description}',
],
];
// get all symbolmaps and check if its not empty and convert both the from_symbol and to_symbol to array
$symbolMaps = SymbolMap::select('from_symbol', 'to_symbol')->get();
if ($symbolMaps) {
$maps = $symbolMaps->map(function ($map) {
return [
'to' => $map->to_symbol,
'from' => $map->from_symbol,
];
})->toArray();
$payload['symbolMapping'] = $maps;
}
$response = $this->fetctApi('/update-strategy', $payload, 'POST');
if ($response->failed()) {
return redirect()->back()->with('message', $response['message']);
}
// remove providers key from cache
HelperService::cacheForget('providers');
return redirect()->back()->with('success', $response['message']);
}
public function deleteMasterAccount($id): RedirectResponse
{
$response = $this->fetctApi('/delete-master-account' . '/' . $id);
if ($response->failed()) {
return redirect()->back()->with('message', $response['message']);
}
HelperService::cacheForget('providers');
return redirect()->back()->with('success', $response['message']);
}
public function renewAccount(Request $request): RedirectResponse
{
$response = $this->fetctApi('/renew-master-account', [
'account' => $request->account_id,
], 'POST');
if ($response->failed()) {
return redirect()->back()->with('message', $response['message']);
}
HelperService::cacheForget('copier-settings');
return redirect()->back()->with('success', $response['message']);
}
public function delsub(string $id): RedirectResponse
{
Mt4Details::where('id', $id)->delete();
return redirect()->back()->with('success', 'Subscription Sucessfully Deleted');
}
public function invoices(string $id): View
{
return view('admin.subscription.invoice', [
'title' => 'Invoices',
'account' => Mt4Details::find($id),
'invoices' => Invoice::where('mt4_details_id', $id)->with('account')->orderByDesc('id')->simplePaginate(10),
]);
}
}