summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2016-06-09 12:11:03 +0200
committerAzul <azul@riseup.net>2016-06-09 12:11:03 +0200
commit56263b6512f60cf055a925f5446f1f504bb65a4d (patch)
tree2e59de9101c5976bd002f5ffc816f9fd22d0c386
parent80d85a0396fb0dbb27ac1b0885d5461ccc0cfbf2 (diff)
add Hkp::Source with same interface as CouchDB::Source
-rw-r--r--lib/nickserver/hkp/fetch_key.rb2
-rw-r--r--lib/nickserver/hkp/source.rb20
-rw-r--r--lib/nickserver/server.rb22
3 files changed, 27 insertions, 17 deletions
diff --git a/lib/nickserver/hkp/fetch_key.rb b/lib/nickserver/hkp/fetch_key.rb
index 55eeefa..fe00473 100644
--- a/lib/nickserver/hkp/fetch_key.rb
+++ b/lib/nickserver/hkp/fetch_key.rb
@@ -53,4 +53,4 @@ module Nickserver; module Hkp
end
end
-end; end \ No newline at end of file
+end; end
diff --git a/lib/nickserver/hkp/source.rb b/lib/nickserver/hkp/source.rb
new file mode 100644
index 0000000..79333f0
--- /dev/null
+++ b/lib/nickserver/hkp/source.rb
@@ -0,0 +1,20 @@
+require 'nickserver/hkp/response'
+module Nickserver::Hkp
+ class Source
+
+ def initialize(adapter)
+ end
+
+ def query(nick)
+ fetcher.get(nick).callback {|key|
+ yield Response.new(nick, key)
+ }.errback {|status, msg|
+ yield Nickserver::Response.new(status, msg)
+ }
+ end
+
+ def fetcher
+ Nickserver::Hkp::FetchKey.new
+ end
+ end
+end
diff --git a/lib/nickserver/server.rb b/lib/nickserver/server.rb
index c6615d2..2453f94 100644
--- a/lib/nickserver/server.rb
+++ b/lib/nickserver/server.rb
@@ -5,7 +5,7 @@ silence_warnings do
end
require 'json'
require 'nickserver/couch_db/source'
-require 'nickserver/hkp/response'
+require 'nickserver/hkp/source'
require 'nickserver/adapters/em_http'
@@ -91,22 +91,12 @@ module Nickserver
def send_key(uid)
if local_address?(uid)
- @source = Nickserver::CouchDB::Source.new(adapter)
- @source.query(uid) do |response|
- send_response(status: response.status, content: response.content)
- end
+ source = Nickserver::CouchDB::Source.new(adapter)
else
- @fetcher = Nickserver::Hkp::FetchKey.new
- @fetcher.get(uid).callback {|key|
- response = Nickserver::Hkp::Response.new(uid, key)
- send_response(status: response.status, content: response.content)
- }.errback {|status, msg|
- if status == 404
- send_not_found
- else
- send_response(status: status, content: msg)
- end
- }
+ source = Nickserver::Hkp::Source.new(adapter)
+ end
+ source.query(uid) do |response|
+ send_response(status: response.status, content: response.content)
end
end