Sha256: c7368e6b42dd0ba937edc90aa3996433134e47656ef765131655da5afa506924

Contents?: true

Size: 1.52 KB

Versions: 23

Compression:

Stored size: 1.52 KB

Contents

module EgovUtils
  module RegistrationRequests
    class HandleRequest < ActiveInteraction::Base
      record :registration_request, class: 'EgovUtils::RegistrationRequest'
      string :status
      string :reason, default: nil
      string :internal_reason, default: nil
      array :roles, default: [] do
        string
      end
      array :group_ids, default: [] do
        integer
      end

      def execute
        registration_request.update(
          status: status,
          reason: reason,
          internal_reason: internal_reason
        )

        case status
        when 'accepted'
          user = create_user!
          EgovUtils::RegistrationRequestMailer
            .accepted(registration_request.id, user.id, password)
            .deliver_now
        when 'rejected'
          EgovUtils::RegistrationRequestMailer
            .rejected(registration_request.id)
            .deliver_now
        end

        registration_request
      end

      private

      def create_user!
        User.create(
          mail: registration_request.mail,
          login: registration_request.mail,
          firstname: registration_request.firstname,
          lastname: registration_request.lastname,
          password: password,
          password_confirmation: password,
          roles: roles,
          group_ids: group_ids,
          must_change_password: true,
          active: true,
          last_login_at: Time.current
        )
      end

      def password
        @password ||= SecureRandom.hex(8)
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
egov_utils-1.5.0.alpha16 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha15 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha14 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha13 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha12 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha11 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha10 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha9 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha8 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha7 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha6 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha5 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha4 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.4.5 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.4.4 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha3 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha2 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.5.0.alpha1 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.4.3 app/services/egov_utils/registration_requests/handle_request.rb
egov_utils-1.4.2 app/services/egov_utils/registration_requests/handle_request.rb