Class: MultiClient::CreateClientService

Inherits:
Itsf::Services::V2::Service::Base
  • Object
show all
Defined in:
app/services/multi_client/create_client_service.rb

Defined Under Namespace

Classes: Response

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#create_roles_and_permissions=(value) ⇒ Object

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def create_roles_and_permissions=(value)
  @create_roles_and_permissions = value
end

#enabledObject

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def enabled
  @enabled
end

#identifierObject

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def identifier
  @identifier
end

#request_hostObject

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def request_host
  @request_host
end

#subdomainObject

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def subdomain
  @subdomain
end

#user_emailsObject

attr_accessor :subdomain, :identifier, :enabled, :brand_primary_color, :logo, :user_emails, :product_ids, :create_roles_and_permissions, :request_host



9
10
11
# File 'app/services/multi_client/create_client_service.rb', line 9

def user_emails
  @user_emails
end

Instance Method Details

#do_workObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/services/multi_client/create_client_service.rb', line 14

def do_work
  say "Running on environment #{Rails.env}"
  say "Validating input"
  return response unless valid?
  say "Input is valid"
  ActiveRecord::Base.transaction do
    response.client = create_client
    return response unless response.client.persisted?
    Client.with_client(response.client) do
      # response.client_setting = create_client_setting
      response.roles, response.permissions = create_default_roles_and_permissions if create_roles_and_permissions == true
      response.users = create_users
      # response.licensed_products = create_licensed_products
      raise ActiveRecord::Rollback if errors.any?
      request_user_password_resets(response.users.map(&:email))
    end
  end
  say "Done"
  respond
end