class Services::Analyzer

Public Class Methods

new(result, threshold_adult, threshold_violence, threshold_face) click to toggle source
# File lib/services/analyzer.rb, line 5
def initialize(result, threshold_adult, threshold_violence, threshold_face)
  @result = result
  @threshold_adult = threshold_adult
  @threshold_violence = threshold_violence
  @threshold_face = threshold_face
end

Public Instance Methods

call() click to toggle source
# File lib/services/analyzer.rb, line 12
def call
  result_hash = {}
  unless @result[:safe_search_annotation].nil?
    result_hash[:safe_search] = analyze_safe_search_annotation(@result[:safe_search_annotation])
  end

  unless @result[:face_annotations].nil?
    detection_confidence = @result[:face_annotations].first[:detection_confidence]
  end
  detection_confidence ||= 0

  result_hash[:face_recognised] = analyze_face_annotation(detection_confidence)
  result_hash
end

Private Instance Methods

analyze_face_annotation(float_result) click to toggle source
# File lib/services/analyzer.rb, line 36
def analyze_face_annotation(float_result)
  float_result > @threshold_face
end
analyze_safe_search_annotation(hash_result) click to toggle source
# File lib/services/analyzer.rb, line 29
def analyze_safe_search_annotation(hash_result)
  {
    violence: Validators::Likelihood.new(hash_result[:violence], @threshold_violence).call,
    adult: Validators::Likelihood.new(hash_result[:adult], @threshold_adult).call,
  }
end