/** * Remove a edge from a graph, identified by the graph name and edge id<br><br> * * @throws Exception * * @param mixed $graph - graph name as a string or instance of Graph * @param mixed $edgeId - edge id as string or number * @param mixed $revision - optional revision of the edge to be deleted * @param mixed $options optional, array of options (see below) or the boolean value for $policy (for compatibility prior to version 1.1 of this method) * <p> * <li><b>policy</b> - update policy to be used in case of conflict ('error', 'last' or NULL [use default])</li> * <li><b>waitForSync</b> - can be used to force synchronisation of the document removal operation to disk even in case that the waitForSync flag had been disabled for the entire collection</li> * </p> * @param string $collection - if one uses a graph with more than one vertex collection one must provide the collection * * @return bool - always true, will throw if there is an error * @since 1.2 */ public function removeEdge($graph, $edgeId, $revision = null, $options = array(), $collection = null) { if ($graph instanceof Graph) { $graph = $graph->getKey(); } $parts = explode("/", $edgeId); if (count($parts) === 2) { $edgeId = $parts[1]; $collection = $parts[0]; } if (count($this->getEdgeCollections($graph)) !== 1 && $collection === null) { throw new ClientException('A collection must be provided.'); } else { if (count($this->getEdgeCollections($graph)) === 1 && $collection === null) { $collection = $this->getEdgeCollections($graph); $collection = $collection[0]; } } // This preserves compatibility for the old policy parameter. $params = array(); $params = $this->validateAndIncludeOldSingleParameterInParams($options, $params, ConnectionOptions::OPTION_DELETE_POLICY); $params = $this->includeOptionsInParams($options, $params, array('waitForSync' => $this->getConnectionOption(ConnectionOptions::OPTION_WAIT_SYNC), 'keepNull' => true)); if (!is_null($revision)) { $params[ConnectionOptions::OPTION_REVISION] = $revision; } $url = UrlHelper::buildUrl(Urls::URL_GRAPH, array($graph, Urls::URLPART_EDGE, $collection, $edgeId)); $url = UrlHelper::appendParamsUrl($url, $params); $this->getConnection()->delete($url); return true; }
/** * Deletes an endpoint * * This will delete an existing endpoint. * * @param Connection $connection - the connection to be used * @param string $endpoint - the endpoint specification, e.g. tcp://127.0.0.1:8530 * * @link http://www.arangodb.com/manuals/1.4/HttpEndpoint.html * @return array $responseArray - The response array. */ public static function delete(Connection $connection, $endpoint) { $url = UrlHelper::buildUrl(Urls::URL_ENDPOINT, array($endpoint)); $response = $connection->delete($url); $responseArray = $response->getJson(); return $responseArray; }
/** * Retrieves information about the current database * * This will get information about the currently used database from the server * * @param Connection $connection - the connection to be used * * @link http://www.arangodb.com/manuals/1.4/HttpDatabase.html * * @return array $responseArray - The response array. */ public static function getInfo(Connection $connection) { $url = UrlHelper::buildUrl(Urls::URL_DATABASE, array('current')); $response = $connection->get($url); $responseArray = $response->getJson(); return $responseArray; }
/** * Get registered user functions * * The method can optionally be passed a $namespace parameter to narrow the results down to a specific namespace. * * @param null $namespace * * @throws Exception throw exception if the request failed * * @return mixed true if successful without a return value or the return value if one was set in the action */ public function getRegisteredUserFunctions($namespace = null) { $url = UrlHelper::buildUrl(Urls::URL_AQL_USER_FUNCTION, array()); if (!is_null($namespace)) { $url = UrlHelper::appendParamsUrl($url, array('namespace' => $namespace)); } $response = $this->_connection->get($url); $responseArray = $response->getJson(); return $responseArray; }
/** * Get list of all available collections per default with the collection names as index. * Returns empty array if none are available. * * @param array $options - optional - an array of options. * <p>Options are :<br> * <li>'excludeSystem' - With a value of true, all system collections will be excluded from the response.</li> * <li>'keys' - With a value of "collections", the index of the resulting array is numerical, * With a value of "names", the index of the resulting array are the collection names.</li> * </p> * * @return array */ public function getAllCollections($options = array()) { $options = array_merge(array("excludeSystem" => false, 'keys' => "names"), $options); $params = array(); if ($options["excludeSystem"] === true) { $params[self::OPTION_EXCLUDE_SYSTEM] = true; } $url = UrlHelper::appendParamsUrl(Urls::URL_COLLECTION, $params); $response = $this->getConnection()->get(UrlHelper::buildUrl($url, array())); $response = $response->getJson(); if (isset($options["keys"]) && isset($response[$options["keys"]])) { return $response[$options["keys"]]; } return $response; }
/** * Remove a user, identified by the username * * @throws Exception * * @param mixed $username - username as a string, of the user that is to be deleted * * @return bool - always true, will throw if there is an error */ public function removeUser($username) { // This preserves compatibility for the old policy parameter. $params = array(); $url = UrlHelper::buildUrl(Urls::URL_USER, array($username)); $url = UrlHelper::appendParamsUrl($url, $params); $this->getConnection()->delete($url); return true; }
/** * Remove a document from a collection (internal method) * * @throws Exception * * @param string $url - the server-side URL being called * @param string $collectionId - collection id as string or number * @param mixed $documentId - document id as string or number * @param mixed $revision - optional revision of the document to be deleted * @param mixed $options - optional, array of options (see below) or the boolean value for $policy (for compatibility prior to version 1.1 of this method) * <p>Options are : * <li>'policy' - update policy to be used in case of conflict ('error', 'last' or NULL [use default])</li> * <li>'waitForSync' - can be used to force synchronisation of the document removal operation to disk even in case that the waitForSync flag had been disabled for the entire collection</li> * </p> * * @return bool - always true, will throw if there is an error */ protected function erase($url, $collectionId, $documentId, $revision = null, $options = array()) { // This preserves compatibility for the old policy parameter. $params = array(); $params = $this->validateAndIncludeOldSingleParameterInParams($options, $params, ConnectionOptions::OPTION_DELETE_POLICY); $params = $this->includeOptionsInParams($options, $params, array('waitForSync' => ConnectionOptions::OPTION_WAIT_SYNC)); if (!is_null($revision)) { $params[ConnectionOptions::OPTION_REVISION] = $revision; } $url = UrlHelper::buildUrl($url, array($collectionId, $documentId)); $url = UrlHelper::appendParamsUrl($url, $params); $this->getConnection()->delete($url); return true; }
/** * Kills a specific query * * This will send an HTTP DELETE command to the server to terminate the specified query * * @param string $id - query id * * @throws Exception * * @return bool */ public function kill($id) { $url = UrlHelper::buildUrl(Urls::URL_QUERY, array($id)); $this->_connection->delete($url); return true; }