2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								namespace  App\Http\Controllers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								use  App\Models\IPs ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\Labels ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\NetworkSpeed ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								use  App\Models\OS ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\Pricing ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\Providers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\Server ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  App\Models\Shared ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  DataTables ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  Illuminate\Http\Request ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:22:23 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								use  Illuminate\Support\Facades\Cache ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								use  Illuminate\Support\Facades\DB ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								use  Illuminate\Support\Facades\Validator ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								use  Illuminate\Support\Str ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  ApiController  extends  Controller 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    protected  function  getAllServers () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $servers  =  DB :: table ( 'servers as s' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> Join ( 'pricings as p' ,  's.id' ,  '=' ,  'p.service_id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            -> join ( 'providers as pr' ,  's.provider_id' ,  '=' ,  'pr.id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> join ( 'locations as l' ,  's.location_id' ,  '=' ,  'l.id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> join ( 'os as o' ,  's.os_id' ,  '=' ,  'o.id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            -> get ([ 's.*' ,  'p.id as price_id' ,  'p.currency' ,  'p.price' ,  'p.term' ,  'p.as_usd' ,  'p.usd_per_month' ,  'p.next_due_date' ,  'pr.name as provider' ,  'l.name as location' ,  'o.name as os' ]) -> toJson ( JSON_PRETTY_PRINT ); 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response ( $servers ,  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    protected  function  getServer ( $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $server  =  DB :: table ( 'servers as s' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> Join ( 'pricings as p' ,  's.id' ,  '=' ,  'p.service_id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            -> join ( 'providers as pr' ,  's.provider_id' ,  '=' ,  'pr.id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> join ( 'locations as l' ,  's.location_id' ,  '=' ,  'l.id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> join ( 'os as o' ,  's.os_id' ,  '=' ,  'o.id' ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								            -> where ( 's.id' ,  '=' ,  $id ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            -> get ([ 's.*' ,  'p.id as price_id' ,  'p.currency' ,  'p.price' ,  'p.term' ,  'p.as_usd' ,  'p.usd_per_month' ,  'p.next_due_date' ,  'pr.name as provider' ,  'l.name as location' ,  'o.name as os' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $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.*' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $ip_addresses  =  DB :: table ( 'ips as i' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> where ( 'i.service_id' ,  '=' ,  $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> get ([ 'i.*' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $server [ 'ip_addresses' ]  =  $ip_addresses ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        $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 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-16 16:36:58 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    protected  function  getAllSeedbox () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $reseller  =  DB :: table ( 'seedboxes as sb' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> Join ( 'pricings as p' ,  'sb.id' ,  '=' ,  'p.service_id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> get ([ 'sb.*' ,  '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  getSeedbox ( $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $reseller  =  DB :: table ( 'seedboxes as sb' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> Join ( 'pricings as p' ,  'sb.id' ,  '=' ,  'p.service_id' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> where ( 'sb.id' ,  '=' ,  $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> get ([ 'sb.*' ,  '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 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    protected  function  getAllOs () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-09 14:57:38 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        $os  =  OS :: allOS () -> toJson ( JSON_PRETTY_PRINT ); 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:58:25 +11:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  response ( $os ,  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    protected  function  getOs ( $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $os  =  DB :: table ( 'os as o' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> where ( 'o.id' ,  '=' ,  $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> get () -> toJson ( JSON_PRETTY_PRINT ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response ( $os ,  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    protected  function  getAllIPs () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $ip  =  IPs :: all () -> toJson ( JSON_PRETTY_PRINT ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response ( $ip ,  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    protected  function  getIP ( $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $ip  =  DB :: table ( 'ips as i' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> where ( 'i.id' ,  '=' ,  $id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            -> get () -> toJson ( JSON_PRETTY_PRINT ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response ( $ip ,  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-18 14:51:25 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                break ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								            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 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    protected  function  storeServer ( Request  $request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $rules  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'hostname'  =>  'min:3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'server_type'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'os_id'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'provider_id'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'location_id'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ssh_port'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_as_mb'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_as_gb'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'cpu'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'bandwidth'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'was_promo'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'active'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'show_public'  =>  'required|integer' , 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 16:30:27 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            'ip1'  =>  'ip' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ip2'  =>  'ip' , 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            'owned_since'  =>  'required|date' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_type'  =>  'required|string|size:2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_type'  =>  'required|string|size:2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'currency'  =>  'required|string|size:3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'price'  =>  'required|numeric' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'payment_term'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'next_due_date'  =>  'date' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $messages  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'required'  =>  ':attribute is required' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'min'  =>  ':attribute must be longer than 3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'integer'  =>  ':attribute must be an integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'string'  =>  ':attribute must be a string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'size'  =>  ':attribute must be exactly :size characters' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'numeric'  =>  ':attribute must be a float' , 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 16:30:27 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            'ip'  =>  ':attribute must be a valid IP address' , 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 14:56:19 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            'date'  =>  ':attribute must be a date Y-m-d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $validator  =  Validator :: make ( $request -> all (),  $rules ,  $messages ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $validator -> fails ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ([ 'result'  =>  'fail' ,  'messages'  =>  $validator -> messages ()],  400 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $server_id  =  Str :: random ( 8 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $pricing  =  new  Pricing (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $as_usd  =  $pricing -> convertToUSD ( $request -> price ,  $request -> currency ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $pricing -> insertPricing ( 1 ,  $server_id ,  $request -> currency ,  $request -> price ,  $request -> payment_term ,  $as_usd ,  $request -> next_due_date ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( ! is_null ( $request -> ip1 ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            IPs :: insertIP ( $server_id ,  $request -> ip1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( ! is_null ( $request -> ip2 ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            IPs :: insertIP ( $server_id ,  $request -> ip2 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $insert  =  Server :: create ([ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'id'  =>  $server_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'hostname'  =>  $request -> hostname , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'server_type'  =>  $request -> server_type , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'os_id'  =>  $request -> os_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ssh_port'  =>  $request -> ssh_port , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'provider_id'  =>  $request -> provider_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'location_id'  =>  $request -> location_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram'  =>  $request -> ram , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_type'  =>  $request -> ram_type , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_as_mb'  =>  ( $request -> ram_type  ===  'MB' )  ?  $request -> ram  :  ( $request -> ram  *  1024 ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk'  =>  $request -> disk , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_type'  =>  $request -> disk_type , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_as_gb'  =>  ( $request -> disk_type  ===  'GB' )  ?  $request -> disk  :  ( $request -> disk  *  1024 ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'owned_since'  =>  $request -> owned_since , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ns1'  =>  $request -> ns1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ns2'  =>  $request -> ns2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'bandwidth'  =>  $request -> bandwidth , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'cpu'  =>  $request -> cpu , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'was_promo'  =>  $request -> was_promo , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'show_public'  =>  ( isset ( $request -> show_public ))  ?  1  :  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Server :: serverRelatedCacheForget (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $insert )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ( array ( 'result'  =>  'success' ,  'server_id'  =>  $server_id ),  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response () -> json ( array ( 'result'  =>  'fail' ,  'request'  =>  $request -> post ()),  500 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 16:30:27 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    public  function  destroyServer ( Request  $request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $items  =  Server :: find ( $request -> id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ( ! is_null ( $items ))  ?  $result  =  $items -> delete ()  :  $result  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $p  =  new  Pricing (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $p -> deletePricing ( $request -> id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Labels :: deleteLabelsAssignedTo ( $request -> id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        IPs :: deleteIPsAssignedTo ( $request -> id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Server :: serverRelatedCacheForget (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $result )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ( array ( 'result'  =>  'success' ),  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response () -> json ( array ( 'result'  =>  'fail' ),  500 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:22:23 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    public  function  updateServer ( Request  $request ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 16:30:27 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $rules  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'hostname'  =>  'string|min:3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'server_type'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'os_id'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'provider_id'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'location_id'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ssh_port'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_as_mb'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_as_gb'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'cpu'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'bandwidth'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'was_promo'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'active'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'show_public'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'owned_since'  =>  'date' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'ram_type'  =>  'string|size:2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'disk_type'  =>  'string|size:2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'currency'  =>  'string|size:3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'price'  =>  'numeric' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'payment_term'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'next_due_date'  =>  'date' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $messages  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'required'  =>  ':attribute is required' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'min'  =>  ':attribute must be longer than 3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'integer'  =>  ':attribute must be an integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'string'  =>  ':attribute must be a string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'size'  =>  ':attribute must be exactly :size characters' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'numeric'  =>  ':attribute must be a float' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'date'  =>  ':attribute must be a date Y-m-d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $validator  =  Validator :: make ( $request -> all (),  $rules ,  $messages ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $validator -> fails ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ([ 'result'  =>  'fail' ,  'messages'  =>  $validator -> messages ()],  400 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $server_update  =  Server :: where ( 'id' ,  $request -> id ) -> update ( request () -> all ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Server :: serverRelatedCacheForget (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Server :: serverSpecificCacheForget ( $request -> id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $server_update )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ( array ( 'result'  =>  'success' ,  'server_id'  =>  $request -> id ),  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response () -> json ( array ( 'result'  =>  'fail' ,  'request'  =>  $request -> post ()),  500 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-19 21:22:23 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    public  function  updatePricing ( Request  $request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $rules  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'price'  =>  'required|numeric' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'currency'  =>  'required|string|size:3' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'term'  =>  'required|integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'active'  =>  'integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'next_due_date'  =>  'date' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $messages  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'required'  =>  ':attribute is required' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'integer'  =>  ':attribute must be an integer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'string'  =>  ':attribute must be a string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'size'  =>  ':attribute must be exactly :size characters' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'numeric'  =>  ':attribute must be a float' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            'date'  =>  ':attribute must be a date Y-m-d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $validator  =  Validator :: make ( $request -> all (),  $rules ,  $messages ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $validator -> fails ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ([ 'result'  =>  'fail' ,  'messages'  =>  $validator -> messages ()],  400 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $pricing  =  new  Pricing (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $request -> as_usd  =  $pricing -> convertToUSD ( $request -> price ,  $request -> currency ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $request -> usd_per_month  =  $pricing -> costAsPerMonth ( $request -> as_usd ,  $request -> term ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $price_update  =  Pricing :: where ( 'id' ,  $request -> id ) -> update ( request () -> all ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Cache :: forget ( " all_pricing " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Server :: serverRelatedCacheForget (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $price_update )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  response () -> json ( array ( 'result'  =>  'success' ,  'server_id'  =>  $request -> id ),  200 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  response () -> json ( array ( 'result'  =>  'fail' ,  'request'  =>  $request -> post ()),  500 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-06 02:02:12 +11:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								}