Class: SpreeCmCommissioner::RecaptchaTokenValidator
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::RecaptchaTokenValidator
- Defined in:
- app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb
Constant Summary collapse
- RECAPTCHA_MINIMUM_SCORE =
0.5
Instance Method Summary collapse
- #call ⇒ Object
- #check_score ⇒ Object
- #client ⇒ Object
- #create_assessment ⇒ Object
- #project_id ⇒ Object
Instance Method Details
#call ⇒ Object
7 8 9 10 |
# File 'app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb', line 7 def call context.response = create_assessment check_score end |
#check_score ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb', line 23 def check_score unless context.response.token_properties.valid context.fail!(message: context.response.token_properties.invalid_reason.presence || I18n.t('recaptcha.invalid_code')) end context.fail!(message: I18n.t('recaptcha.score_not_qualify')) unless context.response.risk_analysis.score > RECAPTCHA_MINIMUM_SCORE context.fail!(message: I18n.t('recaptcha.action_not_matched')) unless context.response.token_properties.action == action end |
#client ⇒ Object
36 37 38 |
# File 'app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb', line 36 def client context.client ||= ::Google::Cloud::RecaptchaEnterprise.recaptcha_enterprise_service end |
#create_assessment ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb', line 12 def create_assessment event = { parent: "projects/#{project_id}", assessment: { event: { site_key: site_key, token: token } } } client.create_assessment(event) rescue StandardError context.fail!(message: I18n.t('recaptcha.request_failed')) end |
#project_id ⇒ Object
32 33 34 |
# File 'app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb', line 32 def project_id context.project_id ||= Rails.application.credentials.recaptcha_enterprise_service_account[:project_id] end |