Пример #1
0
 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');
 }