summaryrefslogtreecommitdiff
path: root/lib/nickserver/server.rb
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2016-06-08 12:44:38 +0200
committerAzul <azul@riseup.net>2016-06-08 12:54:23 +0200
commita89e2ba55399e6bddd9e052cf2064ed0056c958a (patch)
treec28ec332f9763f395a88db991defcae59fa46806 /lib/nickserver/server.rb
parent712c1d062c08a58ca8772aafcdc39d0281959b4a (diff)
refactor: use new couch_db classes from fetch_key
This moves all the em_http related stuff into a single adapter. We're also not using callback and errback inside fetch_key or server for couch requests anymore. Changing the interface for hkp to do the same will follow.
Diffstat (limited to 'lib/nickserver/server.rb')
-rw-r--r--lib/nickserver/server.rb27
1 files changed, 15 insertions, 12 deletions
diff --git a/lib/nickserver/server.rb b/lib/nickserver/server.rb
index cc6e3dd..9e1551b 100644
--- a/lib/nickserver/server.rb
+++ b/lib/nickserver/server.rb
@@ -92,20 +92,23 @@ module Nickserver
end
def get_key_from_uid(uid)
- fetcher = if local_address?(uid)
- Nickserver::Couch::FetchKey.new
+ if local_address?(uid)
+ @fetcher = Nickserver::Couch::FetchKey.new
+ @fetcher.get(uid) do |response|
+ send_response(status: response.status, content: response.content)
+ end
else
- Nickserver::Hkp::FetchKey.new
+ @fetcher = Nickserver::Hkp::FetchKey.new
+ @fetcher.get(uid).callback {|key|
+ yield key
+ }.errback {|status, msg|
+ if status == 404
+ send_not_found
+ else
+ send_response(status: status, content: msg)
+ end
+ }
end
- fetcher.get(uid).callback {|key|
- yield key
- }.errback {|status, msg|
- if status == 404
- send_not_found
- else
- send_response(status: status, content: msg)
- end
- }
end
def format_response(map)