class Sightengine::Client

Public Class Methods

new(service_uri, user, secret) click to toggle source
# File lib/sightengine.rb, line 33
def initialize(service_uri, user, secret)
  @service_uri  = service_uri
  @user         = user
  @secret       = secret
end

Public Instance Methods

moderate(url) click to toggle source
# File lib/sightengine.rb, line 39
def moderate(url)
  http_client(path: '/nudity.json', http_verb: 'GET', params: { url: url })
end

Private Instance Methods

create_request(verb) click to toggle source
# File lib/sightengine.rb, line 57
def create_request(verb)
  case verb.downcase
    when 'get'
      Net::HTTP::Get
    when 'post'
      Net::HTTP::Post
  end
end
http_client(path:, http_verb:, body: "", params: {}) click to toggle source
# File lib/sightengine.rb, line 45
def http_client(path:, http_verb:, body: "", params: {})
  uri     = URI(@service_uri + "#{path}")
  uri.query = URI.encode_www_form(params.merge(api_user: @user, api_secret: @secret))
  http    = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')
  request = create_request(http_verb).new(uri)
  request.body = body
  request.add_field 'Accept', 'application/json'
  response = http.request(request)
  Response.from_json(JSON.parse(response.body))
end