class TurboGoogleRecaptcha::Validator

Attributes

action[R]
minimum_score[R]
score[R]
token[R]

Public Class Methods

new(token:, action:, minimum_score:) click to toggle source
# File lib/turbo_google_recaptcha/validator.rb, line 8
def initialize(token:, action:, minimum_score:)
  @token         = token
  @action        = action
  @minimum_score = minimum_score
end

Public Instance Methods

call() click to toggle source
# File lib/turbo_google_recaptcha/validator.rb, line 14
def call
  uri    = TurboGoogleRecaptcha.compose_uri(token)
  
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.scheme == 'https' 
  result = JSON.parse(http.request(Net::HTTP::Get.new(uri)).body)

  @score = result['score'].to_f

  conditions = []
  conditions << !!result['success']
  conditions << (result['score'].to_f >= minimum_score)
  conditions << (result['action'].to_s == action.to_s)
  conditions.none?(&:!)
end