Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address https://github.com/Islandora-CLAW/CLAW/issues/302 ; Query Par… #51

Merged
merged 12 commits into from
Jul 22, 2016
40 changes: 24 additions & 16 deletions src/Chullo.php
Original file line number Diff line number Diff line change
Expand Up @@ -153,11 +153,12 @@ public function getGraph(
/**
* Creates a new resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*
* @return string Uri of newly created resource or null if failed
*/
Expand All @@ -166,14 +167,16 @@ public function createResource(
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
) {
$response = $this->api->createResource(
$uri,
$content,
$headers,
$transaction,
$checksum
$checksum_value,
$checksum_algorithm
);

if ($response->getStatusCode() != 201) {
Expand All @@ -188,11 +191,12 @@ public function createResource(
/**
* Saves a resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*
* @return boolean True if successful
*/
Expand All @@ -201,14 +205,16 @@ public function saveResource(
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
) {
$response = $this->api->saveResource(
$uri,
$content,
$headers,
$transaction,
$checksum
$checksum_value,
$checksum_algorithm
);

return $response->getStatusCode() == 204;
Expand All @@ -226,21 +232,23 @@ public function saveResource(
public function saveGraph(
$uri,
\EasyRdf_Graph $graph,
$checksum_algorithm = "",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need this line.

$transaction = ""
) {
// Serialze the rdf.
$turtle = $graph->serialise('turtle');

// Checksum it.
$checksum = sha1($turtle);
$checksum_value = sha1($turtle);

// Save it.
return $this->saveResource(
$uri,
$turtle,
['Content-Type' => 'text/turtle'],
$transaction,
$checksum
$checksum_value,
$checksum_algorithm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You also don't need this line, it will default to "sha1" which is what you are using.

);
}

Expand Down
36 changes: 20 additions & 16 deletions src/FedoraApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,12 @@ public function getResourceOptions($uri = "")
/**
* Creates a new resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*
* @return ResponseInterface
*/
Expand All @@ -152,7 +153,8 @@ public function createResource(
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
) {
$options = ['http_errors' => false];

Expand All @@ -163,8 +165,8 @@ public function createResource(
$options['headers'] = $headers;

// Set query string.
if (!empty($checksum)) {
$options['query'] = ['checksum' => $checksum];
if (!empty($checksum_value)) {
$options['headers']['digest'] = $checksum_algorithm.'='.$checksum_value;
}

// Ensure uri takes transaction into account.
Expand All @@ -180,11 +182,12 @@ public function createResource(
/**
* Saves a resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*
* @return ResponseInterface
*/
Expand All @@ -193,7 +196,8 @@ public function saveResource(
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
) {
$options = ['http_errors' => false];

Expand All @@ -204,8 +208,8 @@ public function saveResource(
$options['headers'] = $headers;

// Set query string.
if (!empty($checksum)) {
$options['query'] = ['checksum' => $checksum];
if (!empty($checksum_value)) {
$options['headers']['digest'] = $checksum_algorithm.'='.$checksum_value;
}

// Ensure uri takes transaction into account.
Expand Down
28 changes: 16 additions & 12 deletions src/IFedoraApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,35 +71,39 @@ public function getResourceOptions($uri = "");
/**
* Creates a new resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*/
public function createResource(
$uri = "",
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
);

/**
* Saves a resource in Fedora.
*
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum SHA-1 checksum
* @param string $uri Resource URI
* @param string $content String or binary content
* @param array $headers HTTP Headers
* @param string $transaction Transaction id
* @param string $checksum_algorithm Checksum algorithm
* @param string $checksum_value Checksum value
*/
public function saveResource(
$uri,
$content = null,
$headers = [],
$transaction = "",
$checksum = ""
$checksum_value = "",
$checksum_algorithm = "sha1"
);

/**
Expand Down