- # frozen_string_literal: true
-
- class VerifySalmonService < BaseService
- include AuthorExtractor
-
- def call(payload)
- body = salmon.unpack(payload)
-
- xml = Nokogiri::XML(body)
- xml.encoding = 'utf-8'
-
- account = author_from_xml(xml.at_xpath('/xmlns:entry', xmlns: OStatus::TagManager::XMLNS))
-
- if account.nil?
- false
- else
- salmon.verify(payload, account.keypair)
- end
- end
-
- private
-
- def salmon
- @salmon ||= OStatus2::Salmon.new
- end
- end
|