class Dynamo::Record::BatchRequest
Constants
- MAX_RECORD_SIZE
Attributes
record[R]
type[R]
Public Class Methods
new(record, type)
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 10 def initialize(record, type) @type = type @record = record validate_type validate_request_size end
Public Instance Methods
delete_request()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 29 def delete_request { delete_request: { key: record.send(:key_values) } } end
request()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 17 def request @request ||= send("#{type}_request") end
request_size()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 37 def request_size @request_size ||= request.to_json.length end
save_request()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 21 def save_request { put_request: { item: record.send(:_build_item_for_save) } } end
validate_request_size()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 41 def validate_request_size return unless request_size > MAX_RECORD_SIZE raise RecordTooLargeError.new(record), 'Record is too large' end
validate_type()
click to toggle source
# File lib/dynamo/record/batch_request.rb, line 47 def validate_type return if %i[save delete].include? type raise UnsupportedRequestTypeError end