aws-liam 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/main.yaml +1 -0
- data/Gemfile.lock +5 -5
- data/lib/liam/consumer.rb +3 -2
- data/lib/liam/message_processor.rb +14 -7
- data/lib/liam/producer.rb +4 -2
- data/lib/liam/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ca62555809a9e79275146771a80aa72f2d6bd595
|
4
|
+
data.tar.gz: 86bcc1a6ae4cc503b9bf2d47454d38dacc90da4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da4597e779ea8d6a0466865fed72ceddd3d166675f3d001c7d69c92b16c59ca9c9a41cbb1c300913fdd54a442c994f59a41a940ecf3471c306ca4413a744a949
|
7
|
+
data.tar.gz: f853d341dd2468c6c304ed400e9b3c792c8463b24373eb64d6585d0e87f6e9adde2e9229d972d150504e0e697b7a40af07ca19c71cc548cb8037f2a1df6aabba
|
data/.github/workflows/main.yaml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
aws-liam (0.0.
|
4
|
+
aws-liam (0.0.7)
|
5
5
|
aws-sdk-sns (~> 1.21)
|
6
6
|
aws-sdk-sqs (~> 1.23, >= 1.23.1)
|
7
7
|
|
@@ -11,16 +11,16 @@ GEM
|
|
11
11
|
addressable (2.7.0)
|
12
12
|
public_suffix (>= 2.0.2, < 5.0)
|
13
13
|
aws-eventstream (1.0.3)
|
14
|
-
aws-partitions (1.
|
15
|
-
aws-sdk-core (3.
|
14
|
+
aws-partitions (1.295.0)
|
15
|
+
aws-sdk-core (3.93.0)
|
16
16
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
17
17
|
aws-partitions (~> 1, >= 1.239.0)
|
18
18
|
aws-sigv4 (~> 1.1)
|
19
19
|
jmespath (~> 1.0)
|
20
|
-
aws-sdk-sns (1.
|
20
|
+
aws-sdk-sns (1.22.0)
|
21
21
|
aws-sdk-core (~> 3, >= 3.71.0)
|
22
22
|
aws-sigv4 (~> 1.1)
|
23
|
-
aws-sdk-sqs (1.
|
23
|
+
aws-sdk-sqs (1.24.0)
|
24
24
|
aws-sdk-core (~> 3, >= 3.71.0)
|
25
25
|
aws-sigv4 (~> 1.1)
|
26
26
|
aws-sigv4 (1.1.1)
|
data/lib/liam/consumer.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'aws-sdk-sqs'
|
4
4
|
require 'liam/common'
|
5
5
|
require 'liam/message_processor'
|
6
|
+
require 'pp'
|
6
7
|
|
7
8
|
module Liam
|
8
9
|
class Consumer
|
@@ -22,9 +23,9 @@ module Liam
|
|
22
23
|
|
23
24
|
def execute
|
24
25
|
poller.poll(poller_options) do |messages|
|
25
|
-
puts "[aws-liam] Received #{messages}
|
26
|
-
puts messages.join("\n")
|
26
|
+
puts "INFO -- [aws-liam] : ** Received messages: #{messages.size} ** --"
|
27
27
|
messages.each do |message|
|
28
|
+
pp message
|
28
29
|
MessageProcessor.process(message)
|
29
30
|
end
|
30
31
|
end
|
@@ -13,7 +13,7 @@ module Liam
|
|
13
13
|
|
14
14
|
def self.process(message)
|
15
15
|
raise UnexpectedMessageError, message unless message.is_a?(Aws::SQS::Types::Message)
|
16
|
-
puts "[aws-liam] Processing
|
16
|
+
puts "[aws-liam] Processing..."
|
17
17
|
|
18
18
|
new(message).send(:process)
|
19
19
|
end
|
@@ -23,12 +23,17 @@ module Liam
|
|
23
23
|
attr_reader :message
|
24
24
|
|
25
25
|
private(*def_delegator(:message, :body))
|
26
|
+
private(*def_delegator(:message, :message_attributes))
|
26
27
|
private(*def_delegator(:processor, :process))
|
27
28
|
|
28
|
-
def
|
29
|
+
def parsed_body
|
29
30
|
JSON.parse(body)
|
30
31
|
end
|
31
32
|
|
33
|
+
def parsed_message
|
34
|
+
JSON.parse(parsed_body['Message'])
|
35
|
+
end
|
36
|
+
|
32
37
|
def processor
|
33
38
|
Object.const_get(message_topic_name).new(parsed_message)
|
34
39
|
rescue NameError => e
|
@@ -46,12 +51,14 @@ module Liam
|
|
46
51
|
end
|
47
52
|
|
48
53
|
def value
|
49
|
-
@value
|
50
|
-
|
54
|
+
return @value if defined?(@value)
|
55
|
+
|
56
|
+
@value = begin
|
57
|
+
return if parsed_body.nil? || parsed_body.empty?
|
51
58
|
|
52
|
-
|
53
|
-
|
54
|
-
|
59
|
+
message_attributes['event_name']&.string_value ||
|
60
|
+
parsed_body.dig('MessageAttributes', 'event_name', 'Value')
|
61
|
+
end
|
55
62
|
end
|
56
63
|
end
|
57
64
|
end
|
data/lib/liam/producer.rb
CHANGED
@@ -34,7 +34,7 @@ module Liam
|
|
34
34
|
return UNSUPPORTED_TOPIC_ERROR unless supported_topic?
|
35
35
|
return UNSUPPORTED_MESSAGE_ERROR unless message.is_a?(Hash)
|
36
36
|
|
37
|
-
puts "[aws-liam] Publishing message: #{message}"
|
37
|
+
puts "INFO -- [aws-liam]: ** Publishing message: #{message} ** --"
|
38
38
|
Aws::SNS::Client.new(client_options).publish(
|
39
39
|
topic_arn: topic_arn,
|
40
40
|
message: message.to_json,
|
@@ -58,7 +58,9 @@ module Liam
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def topics
|
61
|
-
@topics
|
61
|
+
return @topics if defined?(@topics)
|
62
|
+
|
63
|
+
@topics = env_credentials['events']
|
62
64
|
end
|
63
65
|
end
|
64
66
|
end
|
data/lib/liam/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-liam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alexismansilla
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-04-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: aws-sdk-sns
|
@@ -161,7 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '0'
|
163
163
|
requirements: []
|
164
|
-
|
164
|
+
rubyforge_project:
|
165
|
+
rubygems_version: 2.5.2
|
165
166
|
signing_key:
|
166
167
|
specification_version: 4
|
167
168
|
summary: AWS SQS+SNS middleware integration between Ruby microservices
|