Class: Refinery::Inquiries::SpamFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/refinery/inquiries/spam_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(inquiry, request) ⇒ SpamFilter

Returns a new instance of SpamFilter.



7
8
9
10
11
# File 'lib/refinery/inquiries/spam_filter.rb', line 7

def initialize(inquiry, request)
  @inquiry = inquiry
  @request = request
  @params = request.params
end

Instance Method Details

#callObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/refinery/inquiries/spam_filter.rb', line 13

def call
  if recaptcha?
    if recaptcha_validated?
      @valid = true
      @inquiry.save
    else
      @inquiry.errors.add(:base, ::I18n.t(:captcha_invalid, scope: "refinery.inquiries.spam_filter"))
    end
  elsif simple_filter?
    @inquiry.save
    @valid = simple_filter_validated?
  end

  if notify?
    send_notification_email!
    send_confirmation_email!
  end
end

#notify?Boolean

Returns:

  • (Boolean)


36
37
38
39
40
41
42
43
44
# File 'lib/refinery/inquiries/spam_filter.rb', line 36

def notify?
  if valid?
    if simple_filter?
      @inquiry.ham? || Inquiries.send_notifications_for_inquiries_marked_as_spam
    else
      true
    end
  end
end

#recaptcha_validated?Boolean

Returns:

  • (Boolean)


46
47
48
49
50
51
52
# File 'lib/refinery/inquiries/spam_filter.rb', line 46

def recaptcha_validated?
  return true unless recaptcha?
  # avoid doing a second request if we already have a result.
  return @recaptcha_validated unless @recaptcha_validated.nil?

  @recaptcha_validated = recaptcha_success?
end

#valid?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/refinery/inquiries/spam_filter.rb', line 32

def valid?
  @valid == true
end