class Xronor::AWS::DynamoDB

Constants

BATCH_WRITE_ITEM_MAX

Public Class Methods

new(client: Aws::DynamoDB::Client.new) click to toggle source
# File lib/xronor/aws/dynamo_db.rb, line 6
def initialize(client: Aws::DynamoDB::Client.new)
  @client = client
end

Public Instance Methods

sync_rule_arns(table, add_rule_arns, delete_rule_arns) click to toggle source
# File lib/xronor/aws/dynamo_db.rb, line 10
def sync_rule_arns(table, add_rule_arns, delete_rule_arns)
  put_requests = add_rule_arns.map do |arn|
    {
      put_request: {
        item: {
          "ARN" => arn,
          "InvokedAt" => "0"
        },
      },
    }
  end

  delete_requests = delete_rule_arns.map do |arn|
    {
      delete_request: {
        key: {
          "ARN" => arn,
        },
      },
    }
  end

  requests = put_requests + delete_requests

  requests.each_slice(BATCH_WRITE_ITEM_MAX) do |reqs|
    @client.batch_write_item({
      request_items: {
        table => reqs,
      },
    })
  end
end