diff --git a/app/controllers/membership_applications_controller.rb b/app/controllers/membership_applications_controller.rb index 5ad479e..6104e02 100644 --- a/app/controllers/membership_applications_controller.rb +++ b/app/controllers/membership_applications_controller.rb @@ -26,6 +26,10 @@ class MembershipApplicationsController < ApplicationController return render :new unless @membership_application.save + ProcessNewMembershipApplication.call( + membership_application: @membership_application, + ) + remember_if_guest_account @membership_application.account redirect_to @membership_application diff --git a/app/interactors/process_new_membership_application.rb b/app/interactors/process_new_membership_application.rb new file mode 100644 index 0000000..0492531 --- /dev/null +++ b/app/interactors/process_new_membership_application.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class ProcessNewMembershipApplication + include Interactor + + def call + MembershipApplicationMailer.with(context).tracking.deliver_now + end +end diff --git a/app/models/membership_application.rb b/app/models/membership_application.rb index 57f2db6..738931f 100644 --- a/app/models/membership_application.rb +++ b/app/models/membership_application.rb @@ -20,10 +20,4 @@ class MembershipApplication < ApplicationRecord self.organization_membership = nil if organization_membership.blank? self.comment = nil if comment.blank? end - - after_create do - MembershipApplicationMailer.with( - membership_application: self, - ).tracking.deliver_now - end end diff --git a/spec/interactors/process_new_membership_application_spec.rb b/spec/interactors/process_new_membership_application_spec.rb new file mode 100644 index 0000000..7e2ec42 --- /dev/null +++ b/spec/interactors/process_new_membership_application_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe ProcessNewMembershipApplication do + pending "add some examples to (or delete) #{__FILE__}" +end