module WolfCore::NoSqlDbOperations

def get_no_sql_item(table_name:, key:, index_name: nil)

def get_no_sql_item(table_name:, key:, index_name: nil)
  WolfCore::NoSqlDbDataSource.get_item(
    table_name: table_name,
    key: key,
    index_name: index_name
  )
end

def get_no_sql_item_by_index(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil)

def get_no_sql_item_by_index(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil)
  items = query_no_sql_items(
    table_name: table_name,
    key_condition_expression: key_condition_expression,
    expression_attribute_values: expression_attribute_values,
    index_name: index_name,
    limit: 1
  )
  items.first
end

def put_no_sql_item(table_name:, item:)

def put_no_sql_item(table_name:, item:)
  WolfCore::NoSqlDbDataSource.put_item(
    table_name: table_name,
    item: item,
  )
end

def query_no_sql_items(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil, limit: nil)

def query_no_sql_items(table_name:, key_condition_expression:, expression_attribute_values:, index_name: nil, limit: nil)
  NoSqlDbDataSource.query(
    table_name: table_name,
    key_condition_expression: key_condition_expression,
    expression_attribute_values: expression_attribute_values,
    index_name: index_name,
    limit: limit
  )
end