Module: WolfCore::NoSqlDbDataSource

Defined in:
lib/wolf_core/infrastructure/no_sql_db_data_source.rb

Class Method Summary collapse

Class Method Details

.get_item(table_name:, key:, index_name: nil) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/wolf_core/infrastructure/no_sql_db_data_source.rb', line 20

def get_item(table_name:, key:, index_name: nil)
  get_params = {
    table_name: table_name,
    key: key
  }
  get_params[:index_name] = index_name if index_name
  instance.get_item(get_params).item
end

.init(region: 'us-east-1') ⇒ Object



5
6
7
# File 'lib/wolf_core/infrastructure/no_sql_db_data_source.rb', line 5

def init(region: 'us-east-1')
  @@dynamodb_client ||= Aws::DynamoDB::Client.new(region: region)
end

.instanceObject



9
10
11
# File 'lib/wolf_core/infrastructure/no_sql_db_data_source.rb', line 9

def instance
  @@dynamodb_client
end

.put_item(table_name:, item:) ⇒ Object



13
14
15
16
17
18
# File 'lib/wolf_core/infrastructure/no_sql_db_data_source.rb', line 13

def put_item(table_name:, item:)
  instance.put_item({
    table_name: table_name,
    item: item
  })
end

.query(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil, limit: nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/wolf_core/infrastructure/no_sql_db_data_source.rb', line 29

def query(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil, limit: nil)
  query_params = {
    table_name: table_name,
    key_condition_expression: key_condition_expression,
    expression_attribute_values: expression_attribute_values
  }
  query_params[:index_name] = index_name if index_name
  query_params[:limit] = limit if limit
  instance.query(query_params).items
end