Class: Decidim::Cdtb::Multitenants::OrgByHostLike

Inherits:
Task
  • Object
show all
Defined in:
lib/decidim/cdtb/multitenants/org_by_host_like.rb

Overview

Finds information about the Organization, or Organizations, searching by the :host_term argument ignorecase. Set :full (second param) to ‘true` for full information

Instance Attribute Summary

Attributes inherited from Task

#num_applied, #title

Instance Method Summary collapse

Methods inherited from Task

#execute!, #finish, #init

Methods included from TasksUtils

#do_log_error, #do_log_info, #log_task_end, #log_task_failure, #log_task_info, #log_task_step, #log_task_title, #logger

Constructor Details

#initialize(host_term, full_info) ⇒ OrgByHostLike

Returns a new instance of OrgByHostLike.



10
11
12
13
14
# File 'lib/decidim/cdtb/multitenants/org_by_host_like.rb', line 10

def initialize(host_term, full_info)
  @host_term= host_term
  @show_full_info= full_info == "true"
  super("ORG BY HOST LIKE")
end

Instance Method Details

#do_execution(_ctx) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/decidim/cdtb/multitenants/org_by_host_like.rb', line 21

def do_execution(_ctx)
  @query.find_each do |org|
    log_task_step("Organization [#{org.id}] #{org.name}:")
    if show_full_info?
      show_full_info(org)
    else
      h= {
        host: org.host,
        time_zone: org.time_zone,
        locales: "#{org.default_locale} + [#{org.available_locales&.join(", ")}]",
        available_authorizations: org.available_authorizations&.join(", ")
      }
      do_log_info(h.to_yaml)
    end
    do_log_info("---------------------------------------------------------")
  end
end

#prepare_execution(_ctx) ⇒ Object



16
17
18
19
# File 'lib/decidim/cdtb/multitenants/org_by_host_like.rb', line 16

def prepare_execution(_ctx)
  @query = Decidim::Organization.where("host ilike ?", "%#{@host_term}%")
  log_task_info("Found #{@query.count} organizations")
end