mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-11-04 08:09:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use App\Models\Providers;
 | 
						|
use DataTables;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Cache;
 | 
						|
use Illuminate\Support\Facades\DB;
 | 
						|
 | 
						|
class ProvidersController extends Controller
 | 
						|
{
 | 
						|
    public function index()
 | 
						|
    {
 | 
						|
        $providers = Providers::allProviders();
 | 
						|
        return view('providers.index', compact(['providers']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function create()
 | 
						|
    {
 | 
						|
        return view('providers.create');
 | 
						|
    }
 | 
						|
 | 
						|
    public function store(Request $request)
 | 
						|
    {
 | 
						|
        $request->validate([
 | 
						|
            'provider_name' => 'required|min:2'
 | 
						|
        ]);
 | 
						|
 | 
						|
        Providers::create([
 | 
						|
            'name' => $request->provider_name
 | 
						|
        ]);
 | 
						|
 | 
						|
        Cache::forget('providers');
 | 
						|
 | 
						|
        return redirect()->route('providers.index')
 | 
						|
            ->with('success', 'Provider Created Successfully.');
 | 
						|
    }
 | 
						|
 | 
						|
    public function show(Providers $provider)
 | 
						|
    {
 | 
						|
        $servers = DB::table('servers as s')
 | 
						|
            ->where('s.provider_id', '=', $provider->id)
 | 
						|
            ->get(['s.id', 's.hostname'])
 | 
						|
            ->toArray();
 | 
						|
 | 
						|
        $shared = DB::table('shared_hosting as s')
 | 
						|
            ->where('s.provider_id', '=', $provider->id)
 | 
						|
            ->get(['s.id', 's.main_domain as main_domain_shared'])
 | 
						|
            ->toArray();
 | 
						|
 | 
						|
        $reseller = DB::table('reseller_hosting as r')
 | 
						|
            ->where('r.provider_id', '=', $provider->id)
 | 
						|
            ->get(['r.id', 'r.main_domain as main_domain_reseller'])
 | 
						|
            ->toArray();
 | 
						|
 | 
						|
        $data = array_merge($servers, $shared, $reseller);
 | 
						|
 | 
						|
        return view('providers.show', compact(['provider', 'data']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function destroy(Providers $provider)
 | 
						|
    {
 | 
						|
        $items = Providers::find($provider->id);
 | 
						|
 | 
						|
        $items->delete();
 | 
						|
 | 
						|
        Cache::forget('providers');
 | 
						|
 | 
						|
        return redirect()->route('providers.index')
 | 
						|
            ->with('success', 'Provider was deleted Successfully.');
 | 
						|
    }
 | 
						|
 | 
						|
    public function getProviders(Request $request)
 | 
						|
    {
 | 
						|
        if ($request->ajax()) {
 | 
						|
            $data = Providers::latest()->get();
 | 
						|
            $dt = Datatables::of($data)
 | 
						|
                ->addIndexColumn()
 | 
						|
                ->addColumn('action', function ($row) {
 | 
						|
                    $actionBtn = '<a href="javascript:void(0)" class="edit btn btn-success btn-sm">Edit</a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm">Delete</a>';
 | 
						|
                    return $actionBtn;
 | 
						|
                })
 | 
						|
                ->rawColumns(['action'])
 | 
						|
                ->make(true);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 |