Use v2 API for creating new lndhub accounts
This commit is contained in:
parent
6df3d5933c
commit
e62bf67262
@ -1,11 +1,11 @@
|
|||||||
class CreateLndhubWalletJob < ApplicationJob
|
class CreateLndhubAccountJob < ApplicationJob
|
||||||
queue_as :default
|
queue_as :default
|
||||||
|
|
||||||
def perform(user)
|
def perform(user)
|
||||||
return if user.ln_login.present? && user.ln_password.present?
|
return if user.ln_login.present? && user.ln_password.present?
|
||||||
|
|
||||||
lndhub = Lndhub.new
|
lndhub = LndhubV2.new
|
||||||
credentials = lndhub.create({ partnerid: user.ou, accounttype: "user" })
|
credentials = lndhub.create_account
|
||||||
|
|
||||||
user.update! ln_login: credentials["login"],
|
user.update! ln_login: credentials["login"],
|
||||||
ln_password: credentials["password"]
|
ln_password: credentials["password"]
|
@ -11,7 +11,7 @@ class CreateAccount < ApplicationService
|
|||||||
def call
|
def call
|
||||||
user = create_user_in_database
|
user = create_user_in_database
|
||||||
add_ldap_document
|
add_ldap_document
|
||||||
create_lndhub_wallet(user)
|
create_lndhub_account(user)
|
||||||
|
|
||||||
if @invitation.present?
|
if @invitation.present?
|
||||||
update_invitation(user.id)
|
update_invitation(user.id)
|
||||||
@ -49,9 +49,9 @@ class CreateAccount < ApplicationService
|
|||||||
ExchangeXmppContactsJob.perform_later(@invitation.user, @username, @domain)
|
ExchangeXmppContactsJob.perform_later(@invitation.user, @username, @domain)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_lndhub_wallet(user)
|
def create_lndhub_account(user)
|
||||||
#TODO enable in development when we have a local lndhub (mock?) API
|
#TODO enable in development when we have a local lndhub (mock?) API
|
||||||
return if Rails.env.development?
|
return if Rails.env.development?
|
||||||
CreateLndhubWalletJob.perform_later(user)
|
CreateLndhubAccountJob.perform_later(user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -70,7 +70,7 @@ class LndhubV2
|
|||||||
# V2
|
# V2
|
||||||
#
|
#
|
||||||
|
|
||||||
def create_account(payload)
|
def create_account(payload={})
|
||||||
post "v2/users", payload, admin_token: Rails.application.credentials.lndhub[:admin_token]
|
post "v2/users", payload, admin_token: Rails.application.credentials.lndhub[:admin_token]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
IIjYiPSeZeMFhH8i8v8akXN4JrtGU+OsMQ8GAao/gVdesggriCBAQ8z+Vd0cmTf1SKYeT3OQDgygEekupr325P4eD9fZ+yi56EA/UMXQXMDVZAvZw7iwvKaOXpqisbWdJnomr1GXrHyR415Ce/Fxft3fgXDwMHJW2u+dDJgpE09uORnB9GXycFwHQmoIdXo=--iQ/Vcm0VcwHgUkwQ--tKHQW/45gM/s/NplqGPaxw==
|
vqH5By5qFLImVjdlWj+7FwGg8APKnr/AEd7WqekG7L0vNA32WGBpwS1uGzs02LIcATRwGj8DyJxiBOB/w9z8cwoO+t6Woi5hAnOSCQwFWKLT0dZq7jgtT8pxK0Yu/Nf91PEFN1rc/8ZFy2KKVpbtMbMPyivT38e/ctBZD/lHrWkndvLXYvFVhqWjUnDOGbhwl/U0RZgqBBjvlm3B0JkQfiN8VXPlCJL2Cd8kd0+MpRCRTgtcxA==--OdVXnDP7OhzJxCsP--+8SI6IFIeXyDxXb+WpqhIQ==
|
@ -1,13 +1,13 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
require 'webmock/rspec'
|
require 'webmock/rspec'
|
||||||
|
|
||||||
RSpec.describe CreateLndhubWalletJob, type: :job do
|
RSpec.describe CreateLndhubAccountJob, type: :job do
|
||||||
let(:user) { create :user, cn: "willherschel", ou: "kosmos.org" }
|
let(:user) { create :user, cn: "willherschel", ou: "kosmos.org" }
|
||||||
|
|
||||||
subject(:job) { described_class.perform_later(user) }
|
subject(:job) { described_class.perform_later(user) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
stub_request(:post, "http://localhost:3023/create")
|
stub_request(:post, "http://localhost:3026/v2/users")
|
||||||
.to_return(status: 200, headers: {},
|
.to_return(status: 200, headers: {},
|
||||||
body: { login: "abc123", password: "def456" }.to_json)
|
body: { login: "abc123", password: "def456" }.to_json)
|
||||||
end
|
end
|
||||||
@ -15,8 +15,8 @@ RSpec.describe CreateLndhubWalletJob, type: :job do
|
|||||||
it "creates a new LndHub account" do
|
it "creates a new LndHub account" do
|
||||||
perform_enqueued_jobs { job }
|
perform_enqueued_jobs { job }
|
||||||
|
|
||||||
expect(WebMock).to have_requested(:post, "http://localhost:3023/create")
|
expect(WebMock).to have_requested(:post, "http://localhost:3026/v2/users")
|
||||||
.with { |req| req.body == '{"partnerid":"kosmos.org","accounttype":"user"}' }
|
.with { |req| req.body == '{}' }
|
||||||
|
|
||||||
user.reload
|
user.reload
|
||||||
expect(user.ln_login).to eq("abc123")
|
expect(user.ln_login).to eq("abc123")
|
@ -93,7 +93,7 @@ RSpec.describe CreateAccount, type: :model do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#create_lndhub_wallet" do
|
describe "#create_lndhub_account" do
|
||||||
include ActiveJob::TestHelper
|
include ActiveJob::TestHelper
|
||||||
|
|
||||||
let(:service) { CreateAccount.new(
|
let(:service) { CreateAccount.new(
|
||||||
@ -102,8 +102,8 @@ RSpec.describe CreateAccount, type: :model do
|
|||||||
)}
|
)}
|
||||||
let(:new_user) { create :user, cn: "halfinney", ou: "kosmos.org" }
|
let(:new_user) { create :user, cn: "halfinney", ou: "kosmos.org" }
|
||||||
|
|
||||||
it "enqueues a job to create an LndHub wallet" do
|
it "enqueues a job to create an LndHub account" do
|
||||||
service.send(:create_lndhub_wallet, new_user)
|
service.send(:create_lndhub_account, new_user)
|
||||||
|
|
||||||
expect(enqueued_jobs.size).to eq(1)
|
expect(enqueued_jobs.size).to eq(1)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user