lita-pubsub 0.1.1 → 0.2.0

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: e66c398ae1aaf4a38282a3123fd82b92dc00af13
4
- data.tar.gz: 965c8cd0e81d0b9283008ddc1635c8825b69371a
3
+ metadata.gz: 68a896e1f4a09f59163397b82b838cca616d71d2
4
+ data.tar.gz: 1e6d2a0da4e961588b9ed11f4796df2e00e045dc
5
5
  SHA512:
6
- metadata.gz: ef4af4cc4e7f9d87e3eb422b7a38458524e2b2ab7565b65534dd923aaedee24380a3ceea7f1184ff7a810520403bfdfbddf1de74ed87f766d9c3834d0763d268
7
- data.tar.gz: 473d304d75f7f76aa4f2fbc14b07de150c37dfc6ca7dea0b71f245e1f95a727f7eec5527d5c57c8387497112f2e4e43bf53cf2a1d5891271970650021b7a2fb8
6
+ metadata.gz: f0ba0e1107797510cd6bc27f77539a80226a4fbc87221df94daa7ca4a17dff046f3469781393fc37c63932b85fb4919fd14e66b3a912cf62e306b3c171ee0115
7
+ data.tar.gz: 24ea314614874cde1155be2ed13f3a21b1a86a5a3ff4d30ff70fcf9c5e9175d17772cca8b8d4c687339f279da139bfedc63dc54d7553c2e771900498f5b7da7b
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.2.0] - 2017-11-14
10
+ ### Added
11
+ - Send asynchronous early response to http publish requests
@@ -76,23 +76,27 @@ module Lita
76
76
 
77
77
  def http_get(request, response)
78
78
  validate_http_password!(request.params['password'])
79
- robot.trigger(
80
- :publish,
81
- event: request.params['event'],
82
- data: request.params['data']
83
- )
84
79
  response.write('ok')
80
+ Thread.new do
81
+ robot.trigger(
82
+ :publish,
83
+ event: request.params['event'],
84
+ data: request.params['data']
85
+ )
86
+ end
85
87
  end
86
88
 
87
89
  def http_post(request, response)
88
90
  data = JSON.parse(request.body.read)
89
91
  validate_http_password!(request.params['password'] || data['password'])
90
- robot.trigger(
91
- :publish,
92
- event: data['event'],
93
- data: data['data']
94
- )
95
92
  response.write('ok')
93
+ Thread.new do
94
+ robot.trigger(
95
+ :publish,
96
+ event: data['event'],
97
+ data: data['data']
98
+ )
99
+ end
96
100
  end
97
101
 
98
102
  def all_subscriptions(response)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-pubsub"
3
- spec.version = "0.1.1"
3
+ spec.version = "0.2.0"
4
4
  spec.authors = ["Tomas Varaneckas"]
5
5
  spec.email = ["tomas.varaneckas@gmail.com"]
6
6
  spec.description = "PubSub notification system for Lita"
@@ -108,6 +108,7 @@ describe Lita::Handlers::Pubsub, lita_handler: true do
108
108
  it 'receives events via http get' do
109
109
  send_message("lita subscribe foo", from: room)
110
110
  http.get('/publish?event=foo&data=bar%20baz&password=secret')
111
+ sleep 0.1 # Give thread some time
111
112
  expect(replies.last).to eq('*foo*: bar baz')
112
113
  end
113
114
 
@@ -118,6 +119,7 @@ describe Lita::Handlers::Pubsub, lita_handler: true do
118
119
  '{"event": "foo", "data":"bar baz", "password":"secret"}',
119
120
  'Content-Type' => 'application/json'
120
121
  )
122
+ sleep 0.1 # Give thread some time
121
123
  expect(replies.last).to eq('*foo*: bar baz')
122
124
  end
123
125
 
@@ -125,18 +127,21 @@ describe Lita::Handlers::Pubsub, lita_handler: true do
125
127
  send_message("lita subscribe foo", from: room)
126
128
  Lita.config.handlers.pubsub.http_password = nil
127
129
  http.get('/publish?event=foo&data=bar%20baz')
130
+ sleep 0.1 # Give thread some time
128
131
  expect(replies.last).to eq('*foo*: bar baz')
129
132
  end
130
133
 
131
134
  it 'rejects http request without any password' do
132
135
  expect {
133
136
  http.get('/publish?event=foo&data=bar%20baz')
137
+ sleep 0.1 # Give thread some time
134
138
  }.to raise_error('incorrect password!')
135
139
  end
136
140
 
137
141
  it 'rejects bad password via http get' do
138
142
  expect {
139
143
  http.get('/publish?event=foo&data=bar%20baz&password=haxor')
144
+ sleep 0.1 # Give thread some time
140
145
  }.to raise_error('incorrect password!')
141
146
  end
142
147
 
@@ -147,6 +152,7 @@ describe Lita::Handlers::Pubsub, lita_handler: true do
147
152
  '{"event":"foo", "data":"bar baz", "password":"lol"}',
148
153
  'Content-Type' => 'application/json'
149
154
  )
155
+ sleep 0.1 # Give thread some time
150
156
  }.to raise_error('incorrect password!')
151
157
  end
152
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-pubsub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Varaneckas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-31 00:00:00.000000000 Z
11
+ date: 2017-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -131,6 +131,7 @@ extra_rdoc_files: []
131
131
  files:
132
132
  - ".gitignore"
133
133
  - ".travis.yml"
134
+ - CHANGELOG.md
134
135
  - Gemfile
135
136
  - README.md
136
137
  - Rakefile