Module: Jets::Job::Helpers::S3EventHelper

Included in:
Base
Defined in:
lib/jets/job/helpers/s3_event_helper.rb

Instance Method Summary collapse

Instance Method Details

#s3_eventObject

Deprecated methods below



31
32
33
34
35
36
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 31

def s3_event
  puts "WARN: s3_event is deprecated".color(:yellow)
  puts "It can possibly drop events when come in extremely fast."
  puts "Use s3_event_payloads instead"
  s3_event_payloads.first
end

#s3_event_payloadsObject



3
4
5
6
7
8
9
10
11
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 3

def s3_event_payloads
  messages = event["Records"].map do |record|
    record["Sns"]["Message"]
  end
  messages.map do |message|
    h = JSON.load(message)
    ActiveSupport::HashWithIndifferentAccess.new(h)
  end
end

#s3_event_payloads?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 13

def s3_event_payloads?
  event["Records"]&.any? { |r| r.dig("Sns", "Message") }
end

#s3_objectObject



38
39
40
41
42
43
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 38

def s3_object
  puts "WARN: s3_object is deprecated".color(:yellow)
  puts "It can possibly drop events when come in extremely fast."
  puts "Use s3_objects instead"
  s3_objects.first
end

#s3_objectsObject



17
18
19
20
21
22
23
24
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 17

def s3_objects
  s3_event_payloads.map do |payload|
    records = payload["Records"]
    records.map do |record|
      record["s3"]["object"]
    end
  end.flatten
end

#s3_objects?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/jets/job/helpers/s3_event_helper.rb', line 26

def s3_objects?
  s3_event_payloads["Records"]&.any? { |r| r.dig("s3", "object") }
end