diff --git a/DynamoDBWrapper.php b/DynamoDBWrapper.php index 1791bf9..1911518 100644 --- a/DynamoDBWrapper.php +++ b/DynamoDBWrapper.php @@ -1,5 +1,7 @@ client = DynamoDbClient::factory($args); + } + } + + public static function createFromClient($client) + { + $dyn = new DynamoDBWrapper(); + $dyn->client = $client; + + return $dyn; } public function get($tableName, $key, $options = array()) @@ -117,7 +130,7 @@ public function count($tableName, $keyConditions, $options = array()) public function scan($tableName, $filter, $limit = null) { if (empty($filter)) { - $scanFilter = null; + $scanFilter = array(); } else { $scanFilter = $this->convertConditions($filter); } @@ -212,9 +225,13 @@ protected function batchWrite($requestType, $tableName, $items) )); // if some items not processed, try again as next request - $unprocessedRequests = $result->getPath("UnprocessedItems/{$tableName}"); - if (count($unprocessedRequests) > 0) { - $requests = array_merge($requests, $unprocessedRequests); + $unprocessedItems = $result->getPath("UnprocessedItems"); + if ($unprocessedItems && count($unprocessedItems) > 0) + { + $unprocessedRequests = $result->getPath("UnprocessedItems/{$tableName}"); + if (count($unprocessedRequests) > 0) { + $requests = array_merge($requests, $unprocessedRequests); + } } } @@ -442,7 +459,7 @@ protected function convertItems($items) /** * convert string attribute paramter to array components. - * + * * @param string $attribute double colon separated string "::" * @return array parsed parameter. [0]=, [1]= */