public static function conduitConnect($id) { $getConduit = DB::table('conduit_api')->where('id', '=', $id)->first(); $curlParams = array('apiPublic' => $getConduit->api_public_key, 'apiPrivate' => $getConduit->api_private_key); $curlParamString = ''; foreach ($curlParams as $key => $value) { $curlParamString .= $key . '=' . $value . '&'; } $conduit = APIController::conduitSend($getConduit->url_to_api_file, count($curlParams), $curlParamString); if ($conduit->output !== 'CONDUIT_CONNECTED') { if ($conduit->output === 'INVALID_PUB_OR_PRI') { echo 'Incorrect API keys provided for Conduit'; } else { echo 'Unknown error occurred, Conduit may be inaccessible'; } exit; } $curlParamString .= APIController::conduitDbParams($getConduit->mysql_host, $getConduit->mysql_port, $getConduit->mysql_username, $getConduit->mysql_password); //echo $curlParamString; $conduit = APIController::conduitSend($getConduit->url_to_api_file, 6, $curlParamString); if ($conduit->output !== 'CONDUIT_CONNECTED') { if ($conduit->output === 'MYSQLI_CONNECT_ERROR') { echo 'Incorrect MySQL details provided for Conduit'; } else { echo 'Unknown error occurred, Conduit may be inaccessible'; } exit; } $conduitVersion = $curlParamString . 'do=conduitVersion'; $conduit = APIController::conduitSend($getConduit->url_to_api_file, 7, $conduitVersion); // get latest version from github $gitVersion = file_get_contents('https://raw.githubusercontent.com/xijbx/mysqldumper-conduit/master/version.txt'); if (floatval($gitVersion) > floatval($conduit->output)) { $canUpdate = true; } else { $canUpdate = false; } $params = array('id' => $getConduit->id, 'conduitVersion' => $conduit->output, 'newConduitVersion' => $gitVersion, 'conduitUri' => $getConduit->url_to_api_file, 'conduitGenerationTime' => $getConduit->created_at, 'canUpdate' => $canUpdate); // get the database list $databaseList = $curlParamString . 'do=databaseList'; $conduit = APIController::conduitSend($getConduit->url_to_api_file, 7, $databaseList); $params['databaseList'] = $conduit->output; // get a list of available services $serviceList = $curlParamString . 'do=serviceList'; $conduit = APIController::conduitSend($getConduit->url_to_api_file, 7, $serviceList); foreach ($conduit->output as $service) { $params['serviceList'][$service] = APIController::fetchServiceName($service); } $params['rawServiceList'] = $conduit->output; return ViewController::show('conduit.connect', 'Conduit@' . $getConduit->url_to_api_file, $params, 'conduit'); }