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: dea80d0adac906884823a9ee3eeecba116dec17b
4
- data.tar.gz: 82c049c83ab382c0e110d718b959a6bdb98af0f2
3
+ metadata.gz: dc412e67c99e63afbd3b3047bd216b4a5e9cef36
4
+ data.tar.gz: 978ee2b929157c56427ea77075155d69ee22f810
5
5
  SHA512:
6
- metadata.gz: 54d3861d72d1422ec20c00b889a606ca7e9437745a70d11dbfe2bced6b64d40b5d81124fd5f9f3ee4f767b8180dbde543fcd04b644c919b80d3b8472e57c05fa
7
- data.tar.gz: 44b427a314c5e963c8101bae277945714c46a56106f1a2273460e2cc0c267fae415df47bd687a5501a284b9e78252e8d4f99db2028e14722b62628d6f9753f7a
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" => body_for(message),
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
@@ -1,7 +1,7 @@
1
1
  module Alephant
2
2
  module Publisher
3
3
  module Queue
4
- VERSION = "2.0.2"
4
+ VERSION = "2.0.3"
5
5
  end
6
6
  end
7
7
  end
@@ -1,15 +1,17 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Alephant::Publisher::Queue::SQSHelper::Archiver do
4
- let (:cache) { instance_double("Alephant::Cache", :put => nil) }
5
- let (:queue) { instance_double("AWS::SQS::Queue", :url => nil) }
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.2
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: 2015-12-16 00:00:00.000000000 Z
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