Class: ContactPointsController

Inherits:
CrmController show all
Includes:
Controllers::Showable, Controllers::Sortable
Defined in:
app/controllers/contact_points_controller.rb

Overview

Controller: contact points.

Constant Summary

Constants included from Controllers::ReferenceFindable

Controllers::ReferenceFindable::ID_EMBEDDED_PATTERNS

Constants included from Controllers::AnalyticsEvents

Controllers::AnalyticsEvents::MAX_QUEUED_EVENTS, Controllers::AnalyticsEvents::SESSION_KEY

Constants included from Controllers::ErrorRendering

Controllers::ErrorRendering::NON_CONTENT_PATH_PREFIXES

Instance Method Summary collapse

Methods included from Controllers::Showable

#perform_show, #show

Methods included from Controllers::Sortable

#perform_sort, #sort

Methods inherited from CrmController

#access_denied, #context_id, #context_object, #crm_home_path, #current_ability, #default_url_options, #download_temp, #get_tempfile_path_for_download, #init_status_job_collector, #initialize_crm_lazy_chunks, #persist_enqueued_status_jobs, #record_not_found, #redirect_to_job_or_fallback, #render_edit_action, #set_context, #set_download_path, #stash_file_for_temp_download, #sync_admin_presence_cookie, #touch_employee_last_seen

Methods inherited from ApplicationController

#account_impersonated?, #add_to_flash, #after_sign_in_path_for, #bypass_forgery_protection?, #chat_enabled?, #cloudflare_cleared?, #default_catalog, #default_url_options, #enable_turbo_frames, #find_publication, #fix_invalid_accept_header, #init_js_utils, #is_globals_call?, #layout_by_resource, #locale_store, #redirect_to, #require_employee_for_crm, #set_base_host, #set_real_ip, #set_report_errors_for, #should_render_layout?, #skip_layout_for_turbo_frame?, #stamp_impersonation_context, #tab_frame_breakout_request?, #warmlyyours_canada_ip?, #warmlyyours_ip?, #y

Methods included from Controllers::ReturnPathHandling

#check_for_return_path, #redirect_to_return_path_or_default

Methods included from Controllers::AnalyticsEvents

#consume_queued_analytics_events, #registration_lead_type, #track_event

Methods included from Controllers::DeviceDetection

#device_detector, #is_ie?

Methods included from Controllers::SubdomainDetection

#is_crm_request?, #is_www_request?, #json_request?

Methods included from Controllers::TurboSafeRedirect

#redirect_to

Methods included from Controllers::TrackingDetection

#bot_request?, #gdpr_country?, #gdpr_country_data, #prevent_bots, #set_tracking_cookie, #track_visitor?

Methods included from Controllers::AcceleratedFileSending

#send_file_accelerated, #send_upload_accelerated

Methods included from Controllers::ErrorRendering

#excp_string, #mail_to_for_error_reporting, #render_400, #render_404, #render_406, #render_410, #render_500, #render_invalid_authenticity_token, #render_ip_spoof_error, #render_unpermitted_parameters, #safe_referer_or_fallback

Methods included from Controllers::TurnstileVerification

#load_turnstile_script_tag, #turnstile_lazy_widget, #turnstile_script_tag, #turnstile_widget, #validate_turnstile!

Methods included from Controllers::CloudflareCaching

edge_cached, #edge_cached_action?, #reset_cloudflare_cache, #set_cloudflare_cache, #skip_edge_cache!, #skip_session

Methods included from Controllers::Webpackable

#preload_webpack_fonts, #webpack_css_include, #webpack_css_url, #webpack_js_include, #wpd_is_running?

Methods included from Controllers::Localizable

#cloudflare_country_locale, #determine_request_locale, #geocoder_locale, #guest_user_locale_check, #locale_optional_www_auth_path?, #param_locale, #set_locale, #set_request_locale, #skip_localization?, #warmlyyours_ip_locale

Methods included from Controllers::Authenticable

#access_denied, #authenticate_account, #authenticate_account!, #authenticate_account_from_login_token!, #check_is_a_manager, #check_is_a_sales_manager, #check_is_an_admin, #check_is_an_employee, #check_party, #clear_mismatched_guest_user, #create_guest_user, #credentials?, #current_or_guest_user, #current_or_guest_user_id_read_only, #current_user, #devise_mapping, #fully_logged_in?, #generate_bot_id, #guest_user, #identifiable?, #init_current_user, #initialize_guest, #load_context_user, #logging_in, #resource, #resource_name, #restrict_access_for_non_employees, #scrubbed_request_path, #user_object, #warn_on_session_guest_id_leak

Methods included from UrlsHelper

#catalog_breadcrumb_links, #catalog_link, #catalog_link_for_product_line, #catalog_link_for_sku, #cms_link, #delocalized_path, #path_to_sales_product_sku, #path_to_sales_product_sku_for_product_line, #path_to_sales_product_sku_for_product_line_slug, #product_line_from_catalog_link, #protocol_neutral_url, #sanitize_external_url, #valid_external_url?

Instance Method Details

#createvoid

This method returns an undefined value.

POST /contact_points — creates a contact point.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/controllers/contact_points_controller.rb', line 36

def create
  @contact_point = context_object.contact_points.new(params[:contact_point])

  respond_to do |format|
    if @contact_point.save
      @save_ok = true
      @contact_points = context_object.contact_points.sorted
      format.html { redirect_to_return_path_or_default polymorphic_url([@contact_point.party, :contact_points]) }
      format.xml  { head :ok }
      format.turbo_stream
    else
      @save_ok = false
      format.html { render action: 'new', status: :unprocessable_content }
      format.xml  { render xml: @contact_point.errors, status: :unprocessable_content }
      format.turbo_stream
    end
  end
end

#destroyvoid

This method returns an undefined value.

DELETE /contact_points/:id — removes the contact point, or just detaches
its party if the contact point has dependents that need it kept.



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/controllers/contact_points_controller.rb', line 71

def destroy
  party = @contact_point.party
  if @contact_point.dependents?
    # Just remove the party
    @contact_point.update_attribute!(:party_id, nil)
  else # safely delete
    begin
      @contact_point.destroy
    rescue StandardError => e
      @contact_point.errors.add(:base, "Unable to delete contact point.  Error: #{e}")
    end
  end
  respond_to do |format|
    format.turbo_stream
    format.html do
      redirect_to_return_path_or_default polymorphic_path(party)
    end
  end
end

#editvoid

This method returns an undefined value.

GET /contact_points/:id/edit — edit form for an existing contact point.



29
30
31
# File 'app/controllers/contact_points_controller.rb', line 29

def edit
  @edit ||= polymorphic_path(@contact_point.party)
end

#indexvoid

This method returns an undefined value.

GET /contact_points — a context object's contact points, plus a blank
one for the inline add form.



13
14
15
16
17
# File 'app/controllers/contact_points_controller.rb', line 13

def index
  @contact_points = context_object.contact_points.sorted
  @contact_point = @context_object.contact_points.new
  @contact_point_form_path = [@context_object, @contact_point]
end

#mark_as_workingvoid

This method returns an undefined value.

PATCH /contact_points/:id/mark_as_working — clears the "email bounced"
flag for this contact point's address.



95
96
97
98
# File 'app/controllers/contact_points_controller.rb', line 95

def mark_as_working
  ContactPoint.mark_email_as_working(@contact_point.detail)
  redirect_to_return_path_or_default polymorphic_path(@contact_point.party)
end

#newvoid

This method returns an undefined value.

GET /contact_points/new — blank contact point form.



22
23
24
# File 'app/controllers/contact_points_controller.rb', line 22

def new
  @contact_point = context_object.contact_points.new
end

#updatevoid

This method returns an undefined value.

PATCH/PUT /contact_points/:id — updates a contact point.



58
59
60
61
62
63
64
65
# File 'app/controllers/contact_points_controller.rb', line 58

def update
  if @contact_point.update(params[:contact_point])
    redirect_to_return_path_or_default polymorphic_path(@contact_point.party)
  else
    @return_path ||= polymorphic_path(@contact_point.party)
    render :edit, status: :unprocessable_content
  end
end