Class: Integration

Inherits:
ApplicationRecord show all
Includes:
HasTags
Defined in:
app/models/integration.rb

Defined Under Namespace

Classes: Slugs

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasTags

#associate_tag, #associate_tags, #disassociate_tag

Methods inherited from ApplicationRecord

define_decrypted_attribute, define_decrypted_attributes, #errors_in_bullet_points, primary_connection, special_connection

Class Method Details

.agendrixObject



16
17
18
# File 'app/models/integration.rb', line 16

def agendrix
  find_by!(slug: Slugs::AGENDRIX)
end

.agendrix_companiesObject



27
28
29
30
31
# File 'app/models/integration.rb', line 27

def agendrix_companies
  select(:integration_id)
    .find_by!(slug: Slugs::AGENDRIX)
    .integrated_companies
end

.agendrix_company_integration(company_id:) ⇒ Object



20
21
22
23
24
25
# File 'app/models/integration.rb', line 20

def agendrix_company_integration(company_id:)
  select(:integration_id)
    .find_by!(slug: Slugs::AGENDRIX)
    .company_integrations
    .find_by!(company_id: company_id)
end

.agendrix_integrated_references(company_id:) ⇒ Object



33
34
35
36
37
38
39
40
# File 'app/models/integration.rb', line 33

def agendrix_integrated_references(company_id:)
  select(:integration_id)
    .find_by!(slug: Slugs::AGENDRIX)
    .integration_references
    .where(
      company_id: company_id
    )
end

.quickbooksObject



42
43
44
# File 'app/models/integration.rb', line 42

def quickbooks
  find_by!(slug: Slugs::QUICKBOOKS)
end

.quickbooks_companiesObject



53
54
55
56
57
# File 'app/models/integration.rb', line 53

def quickbooks_companies
  select(:integration_id)
    .find_by!(slug: Slugs::QUICKBOOKS)
    .integrated_companies
end

.quickbooks_company_integration(company_id:) ⇒ Object



46
47
48
49
50
51
# File 'app/models/integration.rb', line 46

def quickbooks_company_integration(company_id:)
  select(:integration_id)
    .find_by!(slug: Slugs::QUICKBOOKS)
    .company_integrations
    .find_by!(company_id: company_id)
end

.quickbooks_integrated_references(company_id:) ⇒ Object



59
60
61
62
63
64
# File 'app/models/integration.rb', line 59

def quickbooks_integrated_references(company_id:)
  select(:integration_id)
    .find_by!(slug: Slugs::QUICKBOOKS)
    .integration_references
    .where(company_id: company_id)
end

.search_fieldsObject



12
13
14
# File 'app/models/integration.rb', line 12

def search_fields
  I18n.locale == :en ? %w[name_en description_en] : %w[name_fr description_fr]
end

Instance Method Details

#descriptionObject



81
82
83
# File 'app/models/integration.rb', line 81

def description
  attributes[description_key]
end

#integrated_companiesObject



93
94
95
96
# File 'app/models/integration.rb', line 93

def integrated_companies
  Company.joins(:company_integrations)
         .where(company_integrations: { integration_id: integration_id, active: true })
end

#integrated_to_company?(company_id) ⇒ Boolean

Returns:

  • (Boolean)


89
90
91
# File 'app/models/integration.rb', line 89

def integrated_to_company?(company_id)
  company_integrations.exists?(company_id: company_id, active: true)
end

#logo_urlObject



85
86
87
# File 'app/models/integration.rb', line 85

def logo_url
  attributes['logo_url']
end

#nameObject



77
78
79
# File 'app/models/integration.rb', line 77

def name
  attributes[name_key]
end