Viewing file: AddonsController.php (3.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\Addons\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\Addons\Entities\Addon;
use Modules\Addons\Entities\AddonManager;
use Modules\Addons\Entities\Envato;
use Validator;
class AddonsController extends Controller
{
/**
* index
*
* @return void
*/
public function index()
{
return view('addons::index');
}
/**
* upload
*
* @param mixed $request
* @return void
*/
public function upload(Request $request)
{
if ($request->isMethod('post')) {
$validator = Validator::make($request->all(), [
'attachment' => 'required|mimes:zip,rar,7zip',
'purchase_code' => 'required',
]);
if ($validator->fails()) {
return back()->with(['AddonStatus' => 'fail', 'AddonMessage' => __('Validation failed.')]);
}
$addonManager = new AddonManager();
$install = $addonManager->install($request);
if (!$install['status']) {
return back()->with(['AddonStatus' => 'fail', 'AddonMessage' => $install['message']]);
}
if (!Envato::isValidPurchaseCode($request->purchase_code)) {
return back()->with(['AddonStatus' => 'fail', 'AddonMessage' => __('Please provide valid purchase code.')]);
}
$addonName = pathinfo($request->attachment->getClientOriginalName(), PATHINFO_FILENAME);
$this->existsAddonRemove($addonName);
$addonManager::upload($request->attachment);
return back()->with(['AddonStatus' => 'success', 'AddonMessage' => __('Addon successfully uploaded.')]);
}
return back()->with(['AddonStatus' => 'fail', 'AddonMessage' => __('Something went wrong, please try again.')]);
}
/**
* switchStatus
*
* @param mixed $alias
* @return void
*/
public function switchStatus($alias)
{
$addon = Addon::find($alias);
if (is_null($addon)) {
return back()->with(['fail' => 'success', 'AddonMessage' => __('Addon not found.')]);
}
$addon->isEnabled() ? $addon->disable() : $addon->enable();
return back()->with(['AddonStatus' => 'success', 'AddonMessage' => __('Addon status updated.')]);
}
public function remove($alias)
{
$addon = Addon::find($alias);
if (is_null($addon)) {
return back()->with('fail', __('Addon not found.'));
}
if ($addon->get('core')) {
return back()->with('fail', __('Can not be deleted. This is core addon.'));
}
$addon->delete();
return back()->with('success', __('Addon successfully removed.'));
}
public function getForm(Request $request)
{
$addon = Addon::find($request->alias);
if (is_null($addon)) {
return response()->json(['status' => false, 'data' => []], 200);
}
return response()->json(['status' => true, 'data' => ['name' => 'Paypal', 'html' => '<span class="addon-modal-danger">*</span>']], 200);
}
public function removeAlert($alias)
{
return response()->json(
[
'html' => view('addons::remove', compact('alias'))->render(),
'status' => true
],
200
);
}
/**
* check exists addon if found then delete it
*
* @param $addon
* @return void
*/
public function existsAddonRemove($addonName): void
{
$addon = Addon::find($addonName);
if (!is_null($addon)) {
$addon->delete();
}
}
}
|