コード例 #1
0
ファイル: DynamoDb.php プロジェクト: jacksteadman/tracer2
 public function getCounter($key)
 {
     $response = $this->client->GetItem(['TableName' => 'tr_counters', 'Key' => ['counter_key' => ['S' => $key]]]);
     if (isset($response['Item'])) {
         $counter = $this->marshaler->unmarshalItem($response['Item']);
         return $counter['v'];
     }
     return null;
 }
コード例 #2
0
ファイル: DynamoDbQuery.php プロジェクト: benconnito/kopper
 protected function populateArray($rawItems)
 {
     $marshaler = new Marshaler();
     $items = array();
     foreach ($rawItems as $rawItem) {
         array_push($items, $this->createObject($marshaler->unmarshalItem($rawItem)));
     }
     return $items;
 }
コード例 #3
0
ファイル: Driver.php プロジェクト: respect/structural
 protected function formatResults(\Aws\Result $result)
 {
     $items = new \ArrayIterator();
     if ($result['Count'] === 0) {
         return $items;
     }
     foreach ($result['Items'] as $item) {
         $items[] = $this->marshaler->unmarshalItem($item);
     }
     return $items;
 }
コード例 #4
0
ファイル: DynamoDb.php プロジェクト: benconnito/kopper
 public function updateItem($tableName, array $key, $updateExpression, $expressionValuesMap = null)
 {
     $marshaler = new Marshaler();
     $params = array('TableName' => $this->getRealEnvName($tableName), 'Key' => $marshaler->marshalItem($key), 'ReturnValues' => 'UPDATED_NEW');
     $params['UpdateExpression'] = $updateExpression;
     if (empty($expressionValuesMap) === false) {
         $params['ExpressionAttributeValues'] = $expressionValuesMap;
     }
     $result = $this->client->updateItem($params);
     if (isset($result['Attributes']) === true) {
         return $marshaler->unmarshalItem($result['Attributes']);
     } else {
         return null;
     }
 }
コード例 #5
0
ファイル: Ddb.php プロジェクト: kameshwariv/testexample
 /**
  * Get Item data
  *
  * @param $id
  * @return array|bool|stdClass
  */
 public function getData($id)
 {
     if (empty($this->table)) {
         return false;
     }
     /**
      * Get item
      */
     $result = $this->client->getItem(['TableName' => $this->table, 'Key' => ['id' => ['S' => $id]]]);
     /**
      * Un Marshal Item
      */
     $marshaler = new Marshaler();
     $data = $marshaler->unmarshalItem($result['Item']);
     return $data;
 }
コード例 #6
0
 public function unmarshalItem($item)
 {
     return $this->marshaler->unmarshalItem($item);
 }
コード例 #7
0
 /**
  * Session read handler.
  * Do not call this method directly.
  * @param string $id session ID
  * @return string the session data
  */
 public function readSession($id)
 {
     $marshaler = new Marshaler();
     $keys = [];
     $keys[$this->idColumn] = $id;
     try {
         $result = $this->getClient()->getItem(['TableName' => $this->tableName, 'Key' => $marshaler->marshalItem($keys)]);
         if (!isset($result['Item'])) {
             return '';
         }
         $values = $marshaler->unmarshalItem($result['Item']);
         if (!isset($values[$this->dataColumn])) {
             return '';
         }
         return $values[$this->dataColumn];
     } catch (\Exception $ex) {
         Yii::error(__CLASS__ . '::' . __METHOD__ . ': ' . $ex->getMessage(), 'yii2dynamodbsession');
         return false;
     }
 }
コード例 #8
0
ファイル: ApiController.php プロジェクト: keboola/syrup-queue
 /**
  * Gets raw stats for specified run
  * @param $runId
  * @return array|null|\stdClass
  */
 private function getDocumentForRunIdFromDynamoDb($runId)
 {
     $tableName = $this->container->getParameter('container_stats_dynamodb.table_name');
     $params = ['TableName' => $tableName, 'KeyConditionExpression' => 'runId = :runId', 'ExpressionAttributeValues' => [':runId' => ['S' => strval($runId)]], 'ConsistentRead' => true, 'Limit' => 1];
     /** @var DynamoDbClient $dynamoDbClient */
     $dynamoDbClient = $this->container->get('queue.dynamodb_client');
     $marshaler = new Marshaler();
     $response = $dynamoDbClient->query($params);
     if (!empty($response['Items'])) {
         return $marshaler->unmarshalItem(reset($response['Items']));
     } else {
         return null;
     }
 }
コード例 #9
0
    /**
     * Gets raw stats for specified project and date range
     * @param $projectId
     * @param $dateFrom
     * @param $dateTo
     * @return array
     */
    private function getRawMetricsByProjectIdAndDateRange($projectId, $dateFrom, $dateTo)
    {
        $tableName = $this->container->getParameter('container_stats_dynamodb.table_name');
        $params = ['TableName' => $tableName, 'IndexName' => 'sapiProjectId-sapiCreatedTime-index', 'KeyConditionExpression' => <<<EXPR
sapiProjectId = :sapiProjectId
and (sapiCreatedTime between :dateFrom and :dateTo)
EXPR
, 'ExpressionAttributeValues' => [':sapiProjectId' => ['S' => strval($projectId)], ':dateFrom' => ['S' => date('c', strtotime($dateFrom . ' 00:00:00'))], ':dateTo' => ['S' => date('c', strtotime($dateTo . ' 23:59:59'))]], 'Limit' => 100];
        /** @var DynamoDbClient $dynamoDbClient */
        $dynamoDbClient = $this->container->get('queue.dynamodb_client');
        $documents = [];
        $marshaler = new Marshaler();
        do {
            if (isset($response) && isset($response['LastEvaluatedKey'])) {
                $params['ExclusiveStartKey'] = $response['LastEvaluatedKey'];
            }
            $response = $dynamoDbClient->query($params);
            foreach ($response['Items'] as $item) {
                $documents[] = $marshaler->unmarshalItem($item);
            }
        } while (isset($response['LastEvaluatedKey']));
        return $documents;
    }