lib/wolf_core/infrastructure/no_sql_db_operations.rb



module WolfCore
  module NoSqlDbOperations
    module_function

    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 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

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

    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
  end
end