The code powering m.abunchtell.com https://m.abunchtell.com
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

33 linhas
869 B

  1. # frozen_string_literal: true
  2. module WellKnown
  3. class WebfingerController < ActionController::Base
  4. include RoutingHelper
  5. before_action { response.headers['Vary'] = 'Accept' }
  6. def show
  7. @account = Account.find_local!(username_from_resource)
  8. expires_in 3.days, public: true
  9. render json: @account, serializer: WebfingerSerializer, content_type: 'application/jrd+json'
  10. rescue ActiveRecord::RecordNotFound
  11. head 404
  12. end
  13. private
  14. def username_from_resource
  15. resource_user = resource_param
  16. username, domain = resource_user.split('@')
  17. resource_user = "#{username}@#{Rails.configuration.x.local_domain}" if Rails.configuration.x.alternate_domains.include?(domain)
  18. WebfingerResource.new(resource_user).username
  19. end
  20. def resource_param
  21. params.require(:resource)
  22. end
  23. end
  24. end