aws-liam 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|