summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2018-02-05 09:27:48 +0100
committerAzul <azul@riseup.net>2018-02-05 09:27:48 +0100
commit0d622c2164a97c80027f113b7fce5878b4f585bb (patch)
treeff74ea6bab3cf88922cb4edcc0e36c8dd137a545 /lib
parenta43e647663100b7a5117008641765d3508edbe5b (diff)
feature: hand out other key types like katzenpost keys
Diffstat (limited to 'lib')
-rw-r--r--lib/nickserver/couch_db/response.rb15
-rw-r--r--lib/nickserver/couch_db/source.rb2
2 files changed, 12 insertions, 5 deletions
diff --git a/lib/nickserver/couch_db/response.rb b/lib/nickserver/couch_db/response.rb
index eae5cc1..427ac92 100644
--- a/lib/nickserver/couch_db/response.rb
+++ b/lib/nickserver/couch_db/response.rb
@@ -26,7 +26,7 @@ module Nickserver::CouchDB
protected
def key_response
- format address: nick.to_s, openpgp: key
+ format keys.merge(address: nick.to_s)
end
def not_found_response
@@ -37,8 +37,15 @@ module Nickserver::CouchDB
response.to_json
end
- def key
- rows.first['value']
+ def keys
+ rows.first['value'].map do |k,v|
+ if k == 'pgp'
+ # created through webapps deprecated API
+ ['openpgp', v]
+ else
+ [k, v['value']]
+ end
+ end.to_h
end
def ok?
@@ -46,7 +53,7 @@ module Nickserver::CouchDB
end
def empty?
- rows.empty?
+ rows.empty? || keys.empty?
end
def rows
diff --git a/lib/nickserver/couch_db/source.rb b/lib/nickserver/couch_db/source.rb
index b7531e4..7799ede 100644
--- a/lib/nickserver/couch_db/source.rb
+++ b/lib/nickserver/couch_db/source.rb
@@ -9,7 +9,7 @@ module Nickserver::CouchDB
class Error < StandardError; end
class Source < Nickserver::Source
- VIEW = '/_design/Identity/_view/pgp_key_by_email'.freeze
+ VIEW = '/_design/Identity/_view/keys_by_email'.freeze
UNEXPECTED_RESPONSE_CODES = [401, 500].freeze
def query(nick)