From 8a81429f0eb8aa5041d47557d0c5b5359bb959e6 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 25 May 2016 13:13:30 +0200 Subject: copy over all files from rewritten attempt I started a nickserver from scratch to implement the things that are independent of our choice of stack (eventmachine or other). This commit copies them over and tests both things in parallel. --- lib/nickserver/couch_db/source.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 lib/nickserver/couch_db/source.rb (limited to 'lib/nickserver/couch_db/source.rb') diff --git a/lib/nickserver/couch_db/source.rb b/lib/nickserver/couch_db/source.rb new file mode 100644 index 0000000..fffa76e --- /dev/null +++ b/lib/nickserver/couch_db/source.rb @@ -0,0 +1,34 @@ +# +# This class allows querying couch for public keys. +# +require 'nickserver/couch_db/response' + +module Nickserver::CouchDB + class Source + + VIEW = '/_design/Identity/_view/pgp_key_by_email' + + def initialize(adapter) + @adapter = adapter + end + + def query(nick) + adapter.get VIEW, query: query_for(nick) do |status, body| + yield Response.new nick, status: status, body: body + end + end + + protected + + def query_for(nick) + { reduce: "false", key: "\"#{nick}\"" } + end + + def adapter + @adapter + # Nickserver::Adapters::Http.new(config) + end + + attr_reader :config + end +end -- cgit v1.2.3 From a89e2ba55399e6bddd9e052cf2064ed0056c958a Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 8 Jun 2016 12:44:38 +0200 Subject: 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. --- lib/nickserver/couch_db/source.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lib/nickserver/couch_db/source.rb') diff --git a/lib/nickserver/couch_db/source.rb b/lib/nickserver/couch_db/source.rb index fffa76e..874fe4f 100644 --- a/lib/nickserver/couch_db/source.rb +++ b/lib/nickserver/couch_db/source.rb @@ -2,6 +2,7 @@ # This class allows querying couch for public keys. # require 'nickserver/couch_db/response' +require 'nickserver/config' module Nickserver::CouchDB class Source @@ -13,13 +14,17 @@ module Nickserver::CouchDB end def query(nick) - adapter.get VIEW, query: query_for(nick) do |status, body| - yield Response.new nick, status: status, body: body + adapter.get url, query: query_for(nick) do |status, body| + yield Response.new(nick, status: status, body: body) end end protected + def url + Nickserver::Config.couch_url + VIEW + end + def query_for(nick) { reduce: "false", key: "\"#{nick}\"" } end -- cgit v1.2.3