Sha256: a3561a56f96607d4380da40e75de4d35014fbdfc14b01fdfb2c0d5bbe286b80a

Contents?: true

Size: 711 Bytes

Versions: 3

Compression:

Stored size: 711 Bytes

Contents

module Clubhouse
  module Concerns
    module Services
      module CreateMembership
        extend ActiveSupport::Concern

        include Servitore::Service

        included do
          param_reader :membership, :user, :params
        end

        def call
          ActiveRecord::Base.transaction do
            membership.tap do |m|
              m.member = user
              m.admin = invitation.admin
              m.organization = invitation.organization
              m.save!
              invitation.destroy
            end
          end
        end

        private
        def invitation
          @invitation ||= Invitation.find_by!(token: params[:token])
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
clubhouse-0.3.0 lib/clubhouse/concerns/services/create_membership.rb
clubhouse-0.2.0 lib/clubhouse/concerns/services/create_membership.rb
clubhouse-0.1.0 lib/clubhouse/concerns/services/create_membership.rb