class WCC::Contentful::Model::SectionContactForm

Public Instance Methods

page() click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 10
def page
  ::WCC::Contentful::Model::Page.find_by(sections: { id: id })
end
send_email(data) click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 4
def send_email(data)
  save_contact_form(data)

  ::WCC::Contentful::App::ContactMailer.contact_form_email(data[:notification_email], data).deliver
end
to_address(email_object_id: nil) click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 14
def to_address(email_object_id: nil)
  return email_address(email_model(email_object_id)) if email_object_id.present?

  notification_email
end

Private Instance Methods

email_address(entry) click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 22
def email_address(entry)
  return entry.email if defined?(entry.email)

  raise ArgumentError, 'email is not defined on this entry'
end
email_model(email_object_id) click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 28
def email_model(email_object_id)
  raise ArgumentError, 'contentful entry does not exist' unless
    entry = ::WCC::Contentful::Model.find(email_object_id, options: sys.context.to_h)

  entry
end
save_contact_form(data) click to toggle source
# File lib/wcc/contentful/model/section_contact_form.rb, line 35
def save_contact_form(data)
  return unless ::WCC::Contentful::App.db_connected?
  return unless ::ActiveRecord::Base.connection
    .table_exists? 'wcc_contentful_app_contact_form_submissions'

  ::WCC::Contentful::App::ContactFormSubmission.create!(form_id: id, data: data)
end