alephant-publisher-queue 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc412e67c99e63afbd3b3047bd216b4a5e9cef36
|
4
|
+
data.tar.gz: 978ee2b929157c56427ea77075155d69ee22f810
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 447c80ff9b396c53ac1419a6138de9750d53269fd392796a85979d5581fc52dabe1e84380bb2fe96bdf38b7540323434f87ff90a1023fa349d478b9a0788d91a
|
7
|
+
data.tar.gz: 58dd8b9690b4b13f8bc567a450cde9fcd390c0698cbb69d72c6ba4303a171d215f30758d573c4f1c3773bc4621840eda737bd8df9079477ba2b1df03c6bb7f71
|
@@ -39,15 +39,29 @@ module Alephant
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def store(message)
|
42
|
+
msg_body = body_for(message)
|
42
43
|
store_item(message).tap do
|
43
44
|
logger.info(
|
44
45
|
"event" => "MessageStored",
|
45
|
-
"messageBody" =>
|
46
|
+
"messageBody" => msg_body,
|
46
47
|
"method" => "#{self.class}#store"
|
47
|
-
)
|
48
|
+
) if newsbeat_uri? msg_body
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
52
|
+
def newsbeat_uri?(msg_body)
|
53
|
+
jsb = ::JSON.parse(msg_body)
|
54
|
+
msg = ::JSON.parse(jsb["Message"]) if jsb["Message"]
|
55
|
+
|
56
|
+
true if verify_message_content msg
|
57
|
+
rescue ::JSON::ParserError
|
58
|
+
false
|
59
|
+
end
|
60
|
+
|
61
|
+
def verify_message_content(msg)
|
62
|
+
!msg.nil? && msg["uri"] && msg["uri"] =~ /content\/asset\/newsbeat/
|
63
|
+
end
|
64
|
+
|
51
65
|
def store_item(message)
|
52
66
|
cache.put(
|
53
67
|
cache_key(message.id),
|
@@ -68,7 +82,7 @@ module Alephant
|
|
68
82
|
end
|
69
83
|
|
70
84
|
def body_for(message)
|
71
|
-
log_message_body ? message.body : "No message body available"
|
85
|
+
log_message_body ? message.body : '{ "Message": "No message body available" }'
|
72
86
|
end
|
73
87
|
|
74
88
|
def date_key
|
data/spec/archiver_spec.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Alephant::Publisher::Queue::SQSHelper::Archiver do
|
4
|
-
let (:cache)
|
5
|
-
let (:queue)
|
4
|
+
let (:cache) { instance_double("Alephant::Cache", :put => nil) }
|
5
|
+
let (:queue) { instance_double("AWS::SQS::Queue", :url => nil) }
|
6
|
+
let (:msg_body) {{ :Message => JSON.generate(msg_uri) }}
|
7
|
+
let (:msg_uri) {{ :uri => "/content/asset/newsbeat" }}
|
6
8
|
let (:message) do
|
7
9
|
instance_double(
|
8
10
|
"AWS::SQS::ReceivedMessage",
|
9
11
|
:id => "id",
|
10
|
-
:body => "bar_baz",
|
11
12
|
:md5 => "qux",
|
12
|
-
:queue => queue
|
13
|
+
:queue => queue,
|
14
|
+
:body => JSON.generate(msg_body)
|
13
15
|
)
|
14
16
|
end
|
15
17
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alephant-publisher-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BBC News
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|