diff options
author | azul <azul@riseup.net> | 2018-02-05 00:35:07 -0800 |
---|---|---|
committer | azul <azul@riseup.net> | 2018-02-05 00:35:07 -0800 |
commit | 51d41e15dca8aac3c96ab68b1cec22415a8ceae9 (patch) | |
tree | ff74ea6bab3cf88922cb4edcc0e36c8dd137a545 /lib | |
parent | a43e647663100b7a5117008641765d3508edbe5b (diff) | |
parent | 0d622c2164a97c80027f113b7fce5878b4f585bb (diff) |
Merge branch 'feature/katzenpost-keys' into 'master'
feature: hand out other key types like katzenpost keys
See merge request leap/nickserver!22
Diffstat (limited to 'lib')
-rw-r--r-- | lib/nickserver/couch_db/response.rb | 15 | ||||
-rw-r--r-- | lib/nickserver/couch_db/source.rb | 2 |
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) |