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