diff options
Diffstat (limited to 'lib/nickserver/request_handlers/fingerprint_handler.rb')
-rw-r--r-- | lib/nickserver/request_handlers/fingerprint_handler.rb | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/nickserver/request_handlers/fingerprint_handler.rb b/lib/nickserver/request_handlers/fingerprint_handler.rb index 3c04fcd..5b2dc7d 100644 --- a/lib/nickserver/request_handlers/fingerprint_handler.rb +++ b/lib/nickserver/request_handlers/fingerprint_handler.rb @@ -1,27 +1,30 @@ +require 'nickserver/request_handlers/base' require 'nickserver/hkp/source' require 'nickserver/error_response' module Nickserver module RequestHandlers - class FingerprintHandler + class FingerprintHandler < Base - def call(request) - return unless request.fingerprint - handle_request(request) - end - - protected - - def handle_request(request) - fingerprint = request.fingerprint + def handle + return unless fingerprint if fingerprint.length == 40 && !fingerprint[/\H/] - source = Nickserver::Hkp::Source.new source.get_key_by_fingerprint(fingerprint) else ErrorResponse.new('Fingerprint invalid: ' + fingerprint) end end + protected + + def fingerprint + request.fingerprint + end + + def source + Nickserver::Hkp::Source.new + end + end end end |