mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-11-03 23:59:09 +00:00 
			
		
		
		
	
		
			
	
	
		
			262 lines
		
	
	
	
		
			8.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			262 lines
		
	
	
	
		
			8.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Models\Labels;
							 | 
						||
| 
								 | 
							
								use App\Models\NetworkSpeed;
							 | 
						||
| 
								 | 
							
								use App\Models\Pricing;
							 | 
						||
| 
								 | 
							
								use App\Models\Providers;
							 | 
						||
| 
								 | 
							
								use App\Models\Server;
							 | 
						||
| 
								 | 
							
								use App\Models\Shared;
							 | 
						||
| 
								 | 
							
								use DataTables;
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\DB;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ApiController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    protected function getAllServers()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $servers = DB::table('servers as s')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 's.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->get(['s.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return response($servers, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getServer($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $server = DB::table('servers as s')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 's.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->where('s.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['s.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $yabs = DB::table('yabs')
							 | 
						||
| 
								 | 
							
								            ->where('yabs.server_id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $disk_speed = DB::table('disk_speed')
							 | 
						||
| 
								 | 
							
								            ->where('disk_speed.server_id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $network_speed = DB::table('network_speed')
							 | 
						||
| 
								 | 
							
								            ->where('network_speed.server_id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $labels = DB::table('labels_assigned as la')
							 | 
						||
| 
								 | 
							
								            ->Join('labels as l', 'la.label_id', '=', 'l.id')
							 | 
						||
| 
								 | 
							
								            ->where('la.service_id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['l.*']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $server['yabs'] = $yabs;
							 | 
						||
| 
								 | 
							
								        $server['disk_speed'] = $disk_speed;
							 | 
						||
| 
								 | 
							
								        $server['network_speed'] = $network_speed;
							 | 
						||
| 
								 | 
							
								        $server['labels'] = $labels;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return response($server, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllPricing()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $pricing = Pricing::all()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($pricing, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getPricing($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $pricing = Pricing::where('id', $id)->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($pricing, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllNetworkSpeeds()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $ns = NetworkSpeed::all()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($ns, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getNetworkSpeeds($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $ns = DB::table('network_speed as n')
							 | 
						||
| 
								 | 
							
								            ->where('n.server_id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($ns, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllLabels()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $labels = Labels::all()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($labels, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getLabel($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $label = DB::table('labels as l')
							 | 
						||
| 
								 | 
							
								            ->where('l.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($label, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllShared()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $shared = DB::table('shared_hosting as sh')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'sh.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->get(['sh.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($shared, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getShared($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $shared = DB::table('shared_hosting as sh')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'sh.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->where('sh.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['sh.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($shared, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllReseller()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $reseller = DB::table('reseller_hosting as rh')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'rh.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->get(['rh.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($reseller, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getReseller($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $reseller = DB::table('reseller_hosting as rh')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'rh.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->where('rh.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['rh.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($reseller, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllDomains()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $domains = DB::table('domains as d')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'd.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->get(['d.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($domains, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getDomains($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $domain = DB::table('domains as d')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'd.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->where('d.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['d.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($domain, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllMisc()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $misc = DB::table('misc_services as m')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'm.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->get(['m.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($misc, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getMisc($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $misc = DB::table('misc_services as m')
							 | 
						||
| 
								 | 
							
								            ->Join('pricings as p', 'm.id', '=', 'p.service_id')
							 | 
						||
| 
								 | 
							
								            ->where('m.id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get(['m.*', 'p.id as price_id', 'p.currency', 'p.price', 'p.term', 'p.as_usd', 'p.usd_per_month', 'p.next_due_date'])->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($misc, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllDns()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $dns = DB::table('d_n_s')
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($dns, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getDns($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $dns = DB::table('d_n_s')
							 | 
						||
| 
								 | 
							
								            ->where('id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($dns, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllLocations()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $locations = DB::table('locations')
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($locations, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getLocation($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $location = DB::table('locations')
							 | 
						||
| 
								 | 
							
								            ->where('id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($location, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllProviders()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $providers = DB::table('providers')
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($providers, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getProvider($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $providers = DB::table('providers')
							 | 
						||
| 
								 | 
							
								            ->where('id', '=', $id)
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($providers, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getAllSettings()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $settings = DB::table('settings')
							 | 
						||
| 
								 | 
							
								            ->get()->toJson(JSON_PRETTY_PRINT);
							 | 
						||
| 
								 | 
							
								        return response($settings, 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function getAllProvidersTable(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if ($request->ajax()) {
							 | 
						||
| 
								 | 
							
								            $data = Providers::latest()->get();
							 | 
						||
| 
								 | 
							
								            $dt = Datatables::of($data)
							 | 
						||
| 
								 | 
							
								                ->addIndexColumn()
							 | 
						||
| 
								 | 
							
								                ->addColumn('action', function ($row) {
							 | 
						||
| 
								 | 
							
								                    $actionBtn = '<form action="' . route('providers.destroy', $row['id']) . '" method="POST"><i class="fas fa-trash text-danger ms-3" @click="modalForm" id="btn-' . $row['name'] . '" title="' . $row['id'] . '"></i> </form>';
							 | 
						||
| 
								 | 
							
								                    return $actionBtn;
							 | 
						||
| 
								 | 
							
								                })
							 | 
						||
| 
								 | 
							
								                ->rawColumns(['action'])
							 | 
						||
| 
								 | 
							
								                ->make(true);
							 | 
						||
| 
								 | 
							
								            return $dt;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function checkHostIsUp(string $hostname)
							 | 
						||
| 
								 | 
							
								    {//Check if host/ip is "up"
							 | 
						||
| 
								 | 
							
								        ($fp = @fsockopen($hostname, 80, $errCode, $errStr, 1)) ? $result = true : $result = false;
							 | 
						||
| 
								 | 
							
								        if ($fp) {
							 | 
						||
| 
								 | 
							
								            @fclose($fp);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return response(array('is_online' => $result), 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function getIpForDomain(string $domainname, string $type)
							 | 
						||
| 
								 | 
							
								    {//Gets IP from A record for a domain
							 | 
						||
| 
								 | 
							
								        switch ($type) {
							 | 
						||
| 
								 | 
							
								            case "A":
							 | 
						||
| 
								 | 
							
								                $data = dns_get_record($domainname, DNS_A);
							 | 
						||
| 
								 | 
							
								                if (isset($data['0']['ip'])) {
							 | 
						||
| 
								 | 
							
								                    return response(array('ip' => $data['0']['ip']), 200);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            case "AAAA":
							 | 
						||
| 
								 | 
							
								                $data = dns_get_record($domainname, DNS_AAAA);
							 | 
						||
| 
								 | 
							
								                if (isset($data['0']['ipv6'])) {
							 | 
						||
| 
								 | 
							
								                    return response(array('ip' => $data['0']['ipv6']), 200);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return response(array('ip' => null), 200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |