function delete_storylink($linkid) { $logger = Logger::getLogger("generalLog"); try { if (!is_numeric($linkid)) { return; } $query = "SELECT * FROM " . table_links . " WHERE link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } else { $sql_array = mysql_fetch_object($result); } //var_dump($sql_array); # delete the story link $query = "DELETE FROM " . table_links . " WHERE link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete the story comments $query = "DELETE FROM " . table_comments . " WHERE comment_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete the saved links $query = "DELETE FROM " . table_saved_links . " WHERE saved_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete the story tags $query = "DELETE FROM " . table_tags . " WHERE tag_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete the story trackbacks $query = "DELETE FROM " . table_trackbacks . " WHERE trackback_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete the story votes $query = "DELETE FROM " . table_votes . " WHERE vote_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } # delete additional categories $query = "DELETE FROM " . table_additional_categories . " WHERE ac_link_id = '{$linkid}'"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } $sid = $sql_array->link_title_url; # delete target database if local $query = "SELECT * FROM " . table_prefix . "sourceinfo_DB WHERE sid = {$sid}"; if (!($result = mysql_query($query))) { error_page(mysql_error()); } else { $sql_array = mysql_fetch_object($result); //var_dump($sql_array); if ($sql_array->is_local == 1) { // deleing the target db here. $dbHandler = DatabaseHandlerFactory::createDatabaseHandler($sql_array->driver, $sql_array->user_name, $sql_array->password, $sql_array->source_database, $sql_array->server_address, $sql_array->port, $sql_array->is_local, $sql_array->linked_server_name); $dbHandler->dropDatabase(); } $queryEngine = new QueryEngine(); $queryEngine->simpleQuery->dropLinkedServerIfExists($sql_array->linked_server_name); } //TODO Add some error checking //delete the sourceinfo which should triget casding deleting of all related info except cached queries and visualization stuff. $query = "DELETE FROM " . table_prefix . "sourceinfo WHERE sid = {$sid}"; if (!($result = mysql_query($query))) { $logger->error("in admin delete story " . mysql_error()); echo mysql_error(); } //now the only thing left is Neo4J, need to delete node and all realtionships. $neo4JDAO = new Neo4JDAO(); $neo4JDAO->deleteNodeBySid($sid); // module system hook $vars = array('link_id' => $linkid); check_actions('admin_story_delete', $vars); } catch (Exception $e) { $logger->error("in admin delete story " . $e->getMessage()); } }
<?php require_once realpath(dirname(__FILE__)) . '/../config.php'; require_once realpath(dirname(__FILE__)) . '/../DAL/RelationshipDAO.php'; require_once realpath(dirname(__FILE__)) . '/../DAL/Neo4JDAO.php'; require_once realpath(dirname(__FILE__)) . '/../DAL/NotificationDAO.php'; if (!$current_user->authenticated) { die('Please login to use this function.'); } $relId = $_POST['relId']; $userId = $current_user->user_id; $relationshipDAO = new RelationshipDAO(); $notificationDAO = new NotificationDAO(); $notificationDAO->addNTFtoDB($relId, "removeRelationship"); $jsonResult = new stdClass(); try { $relationshipDAO->deleteRelationship($relId, $userId); $n4jDao = new Neo4JDAO(); $n4jDao->deleteRelationshipByRelId($relId); $jsonResult->isSuccessful = true; } catch (Exception $e) { $jsonResult->isSuccessful = false; } echo json_encode($jsonResult);
/** * Adds colfusion relationship between two stories. Also addes neo4j relationship and nodes if needed. And trigres backgroun computatio of datamatching ratios. * @param [type] $user_id id of the user who adds new relationships. * @param [type] $name name of the relationship. * @param [type] $description short textual description for new relationship. * @param [type] $from object containing info about From dataset sid and columns of the relationships from From dataset. TODO: create a class for that object. * @param [type] $to object containing info about To dataset sid and columns of the relationships from To dataset. TODO: the class class as for From should be used. * @param [type] $confidence confidence value for the relationship. * @param [type] $comment shor textual comment for the relationship. */ public function AddRelationship($user_id, $name, $description, $from, $to, $confidence, $comment) { // Add new relationshp in to colfusion $relationshipDao = new RelationshipDAO(); $rel_id = $relationshipDao->addRelationship($user_id, $name, $description, $from, $to, $confidence, $comment); // add newly created relationshiop to neo4j. $neo4JDAO = new Neo4JDAO(); $neo4JDAO->addRelationshipByRelId($rel_id); // triger background execution of data matching ration calcualtion. $dataMatcher = new DataMatcher(); $dataMatcher->calculateDataMatchingRatios(array($rel_id)); }
function updateRelCostInNeo4J($relId, $dao) { $avgConfidence = $dao->getRelationshipAverageConfidenceByRelId($relId); $n4jDao = new Neo4JDAO(); $n4jDao->updateCostByRelId($relId, 1 - $avgConfidence); }