akkounts/app/controllers/well_known_controller.rb

25 lines
669 B
Ruby

class WellKnownController < ApplicationController
def nostr
http_status :unprocessable_entity and return if params[:name].blank?
domain = request.headers["X-Forwarded-Host"].presence || Setting.primary_domain
@user = User.where(cn: params[:name], ou: domain).first
http_status :not_found and return if @user.nil? || @user.nostr_pubkey.blank?
res = {
names: { "#{@user.cn}": @user.nostr_pubkey }
}
if Setting.nostr_relay_url
res[:relays] = {
@user.nostr_pubkey => [ Setting.nostr_relay_url ]
}
end
respond_to do |format|
format.json do
render json: res.to_json
end
end
end
end