Exchange XMPP contacts when invitee signs up #13

Merged
raucao merged 6 commits from feature/automatic_xmpp_roster into master 2020-12-09 20:52:15 +00:00
3 changed files with 28 additions and 3 deletions
Showing only changes of commit 6dac732a7f - Show all commits

View File

@ -104,7 +104,5 @@ class SignupController < ApplicationController
password: @user.password,
invitation: @invitation
)
@invitation.update! invited_user_id: @user.id, used_at: DateTime.now
end
end

View File

@ -8,8 +8,9 @@ class CreateAccount < ApplicationService
end
def call
create_user_in_database
user = create_user_in_database
add_ldap_document
update_invitation(user.id) if @invitation.present?
end
private
@ -24,6 +25,10 @@ class CreateAccount < ApplicationService
)
end
def update_invitation(user_id)
@invitation.update! invited_user_id: user_id, used_at: DateTime.now
end
def add_ldap_document
dn = "cn=#{@username},ou=kosmos.org,cn=users,dc=kosmos,dc=org"
attr = {

View File

@ -23,6 +23,28 @@ RSpec.describe CreateAccount, type: :model do
end
end
describe "#update_invitation" do
let(:invitation) { create :invitation }
let(:service) { CreateAccount.new(
username: 'isaacnewton',
email: 'isaacnewton@example.com',
password: 'bright-ideas-in-autumn',
invitation: invitation
)}
before(:each) do
service.send(:update_invitation, 23)
end
it "marks the invitation as used" do
expect(invitation.used_at).not_to be_nil
end
it "saves the invited user's ID" do
expect(invitation.invited_user_id).to eq(23)
end
end
describe "#add_ldap_document" do
let(:service) { CreateAccount.new(
username: 'halfinney',