include RoutingHelper
before_action { response.headers['Vary'] = 'Accept' }
+ before_action :set_account
+ before_action :check_account_suspension
- def show
- @account = Account.find_local!(username_from_resource)
+ rescue_from ActiveRecord::RecordNotFound, ActionController::ParameterMissing, with: :not_found
+ def show
expires_in 3.days, public: true
render json: @account, serializer: WebfingerSerializer, content_type: 'application/jrd+json'
- rescue ActiveRecord::RecordNotFound, ActionController::ParameterMissing
- head 404
end
private
+ def set_account
+ @account = Account.find_local!(username_from_resource)
+ end
+
def username_from_resource
resource_user = resource_param
username, domain = resource_user.split('@')
def resource_param
params.require(:resource)
end
+
+ def check_account_suspension
+ expires_in(3.minutes, public: true) && gone if @account.suspended?
+ end
+
+ def not_found
+ head 404
+ end
+
+ def gone
+ head 410
+ end
end
end