Improve nostr settings, fix allowsNostr property name
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
Râu Cao 2024-05-10 13:19:09 +02:00
parent c6c5d80fb4
commit 2d1ff29eca
Signed by: raucao
GPG Key ID: 37036C356E56CC51
3 changed files with 25 additions and 4 deletions

View File

@ -18,8 +18,8 @@ class LnurlpayController < ApplicationController
commentAllowed: MAX_COMMENT_CHARS
}
if Setting.nostr_enabled? && Setting.nostr_private_key.present?
res[:allows_nostr] = true
if Setting.nostr_enabled?
res[:allowsNostr] = true
res[:nostrPubkey] = Setting.nostr_public_key
end
@ -52,7 +52,7 @@ class LnurlpayController < ApplicationController
return
end
if params[:nostr].present?# TODO && Setting.nostr_enabled?
if params[:nostr].present? && Setting.nostr_enabled?
handle_zap_request amount, params[:nostr], params[:lnurl]
else
handle_pay_request address, amount, comment

View File

@ -160,7 +160,8 @@ class Setting < RailsSettings::Base
# Nostr
#
field :nostr_enabled, type: :boolean, default: false
field :nostr_enabled, type: :boolean,
default: ENV["NOSTR_PRIVATE_KEY"].present?
field :nostr_private_key, type: :string,
default: ENV["NOSTR_PRIVATE_KEY"].presence

View File

@ -29,6 +29,7 @@ RSpec.describe "/lnurlpay", type: :request do
before do
login_as user, :scope => :user
Setting.nostr_enabled = false
end
describe "GET /.well-known/lnurlp/:username" do
@ -44,6 +45,21 @@ RSpec.describe "/lnurlpay", type: :request do
expect(res["minSendable"]).to be_a(Integer)
expect(res["maxSendable"]).to be_a(Integer)
expect(res["commentAllowed"]).to be_a(Integer)
expect(res["allowsNostr"]).to be_nil
end
context "with support for nostr zaps" do
before do
Setting.nostr_enabled = true
end
it "returns NIP-57 properties" do
get lightning_address_path(username: "satoshi")
res = JSON.parse(response.body)
expect(res["allowsNostr"]).to be(true)
expect(res["nostrPubkey"]).to eq(Setting.nostr_public_key)
end
end
end
@ -104,6 +120,10 @@ RSpec.describe "/lnurlpay", type: :request do
end
context "zap request" do
before do
Setting.nostr_enabled = true
end
describe "with invalid request event" do
it "returns an error" do
get lnurlpay_invoice_path(username: "satoshi", params: {