/** * Edits a organisation * * @param string $id */ public function editAction($id) { $organisation = Organisation::findFirstByid($id); if (!$organisation) { $this->flash->error("organisation was not found"); return $this->dispatcher->forward(array("controller" => "organisation", "action" => "index")); } $LoginList = \PRIME\Controllers\GetController::getLoginList(); $this->view->setVar('loginList', $LoginList); $this->view->id = $organisation->id; $this->tag->setDefault("id", $organisation->id); $this->tag->setDefault("name", $organisation->name); $database = OrgDatabase::findFirstByorganisation_id($id); $this->tag->setDefault("db_id", $database->id); $this->tag->setDefault("db_host", $database->db_host); $this->tag->setDefault("db_username", $database->db_username); $this->tag->setDefault("db_password", $database->db_password); $this->tag->setDefault("db_name", $database->db_name); $this->view->setVar("organisation_id", $organisation->id); $data = Login::find("organisation_id= " . $organisation->id); $this->view->setVar("logins", $data); $data = DataConnector::find("organisation_id= " . $organisation->id); $this->view->setVar("data_connectors", $data); $this->view->setVar("themeList", $this->getThemeList()); }
public function RefreshTokenAction($data_connector_id) { $data_connector = DataConnector::findFirstByid($data_connector_id); $parameters = (array) json_decode($data_connector->parameters, true); if (array_key_exists('auth', $parameters)) { $provider = new $this->provider_name(['clientId' => $parameters['auth']['client_id'], 'clientSecret' => $parameters['auth']['client_secret'], 'redirectUri' => "http://" . $_SERVER['HTTP_HOST'] . "/Authenticators/" . $this->dispatcher->getControllerName()]); } $storage_data = (array) json_decode($data_connector->storage, true); $grant = new \League\OAuth2\Client\Grant\RefreshToken(); $token = $provider->getAccessToken($grant, ['refresh_token' => $storage_data['refresh_token']]); if ($this->authorizationHeader == null) { $this->authorizationHeader = $provider->authorizationHeader; } $storage_data['Authorization'] = $this->authorizationHeader . " " . $token->accessToken; $data_connector->storage = json_encode($storage_data); $data_connector->save(); return '<h1>Refreshing Token Was Successful</h1>'; }
public function updateAction($data_connector_id) { set_time_limit(500); $data_connector = DataConnector::findFirstByid($data_connector_id); $parameters = (array) json_decode($data_connector->parameters, true); $parm_in = array(); $parm_in["query"]['folder'] = $parameters['google_parm']["folder"]; $folder_structure = json_decode($this->getResultsOverrideAction($data_connector_id, "GET", $parameters['google_parm']["macro_url"], json_encode($parm_in), true)); $data = array(); foreach ($folder_structure as $l1key => $l1value) { if (property_exists($l1value, "type")) { } else { foreach ($l1value->children as $l2key => $l2value) { if (property_exists($l2value, "type")) { $newController = new \PRIME\DataConnectors\Google\DriveFileController(); $newController->initialize(); $data[$l1key][$l2key] = $newController->updateAction(1, $l2value->id); $this->writeMysql($data_connector_id, $data[$l1key][$l2key]); } } } } return; }
public function writeMysql($data_connector_id, $data, $queryType = "override", $primary_key = "auto") { $data_connector = DataConnector::findFirstByid($data_connector_id); $database = OrgDatabase::findFirstByorganisation_id($data_connector->organisation_id); $connection = new \Phalcon\Db\Adapter\Pdo\Mysql(array('host' => $database->db_host, 'username' => $database->db_username, 'password' => $database->db_password, 'dbname' => $database->db_name)); if ($queryType == "override") { $sql = "DROP TABLE IF EXISTS " . preg_replace("/[^A-Za-z0-9 ]/", "_", $data_connector->type) . "_" . $data_connector_id; } $sql = "CREATE TABLE IF NOT EXISTS " . preg_replace("/[^A-Za-z0-9 ]/", "_", $data_connector->type) . "_" . $data_connector_id . "("; foreach ($data['headings'] as $key => $column_name) { $type = gettype($data['0'][$key]); if ('string' == gettype($data['0'][$key])) { if (is_numeric($data['0'][$key])) { if ((int) $data['0'][$key] == (double) $data['0'][$key]) { $type = "integer"; } else { $type = "double"; } } else { if (strtotime($data['0'][$key]) != false) { $type = "date"; } else { } } } if ($type == "integer") { $sql = $sql . "`" . $column_name . "` int DEFAULT NULL, "; } elseif ($type == "double") { $sql = $sql . "`" . $column_name . "` real DEFAULT NULL, "; } elseif ($type == "date") { $sql = $sql . "`" . $column_name . "` datetime DEFAULT NULL, "; } else { $sql = $sql . "`" . $column_name . "` varchar(255) DEFAULT NULL, "; } } if ($primary_key == "auto") { $sql = $sql . "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY"; } elseif ($primary_key == "first") { $sql = $sql . "PRIMARY KEY (`" . reset($data['headings']) . "`)"; } else { $sql = $sql . "PRIMARY KEY (" . $primary_key . ")"; } $sql = $sql . ");"; $connection->query($sql); $rows = array(); $sql = "INSERT INTO " . preg_replace("/[^A-Za-z0-9 ]/", "_", $data_connector->type) . "_" . $data_connector_id . " (`" . implode("`,`", $data['headings']) . "`) VALUES "; foreach ($data as $row) { if (count($data['headings']) == count($row)) { $rows[] = "('" . implode("','", $row) . "')"; } } array_shift($rows); $sql = $sql . implode(", ", $rows) . " ON DUPLICATE KEY UPDATE "; $duplicate_values = array(); foreach ($data['headings'] as $column_name) { $duplicate_values[] = "`" . $column_name . "` =VALUES(`" . $column_name . "`)"; } $sql = $sql . implode(" ,", $duplicate_values) . ";"; $connection->query($sql); }