Sha256: ad933469f43939f5abf2673341b0b2bc6b0e1c773aa655e9ac9766bbfad3d08e

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

require "keppler_watson/version"
require 'net/http'
require 'uri'
require 'byebug'

module KepplerWatson
  # Your code goes here...
  class PersonalityInsights

    def initialize(params)
      @username = params[:username]
      @password = params[:password]
      @version = params[:version]
      @lang = params[:lang]
    end

    def profile(params)
      api_post(:profile, params)
    end

    private

    def api_url
      'https://gateway.watsonplatform.net/personality-insights/api/v3'
    end

    def api_post(action, params)
      uri = URI.parse("#{api_url}/#{action.to_s}?version=#{@version}&consumption_preferences=true&raw_scores=true")
      request = Net::HTTP::Post.new(uri)
      request['Content-Type'] = "application/json"
      request['Accept'] = "application/json"
      request['Accept-Language'] = @lang
      request.basic_auth(@username.to_s, @password.to_s)
      request.body = params.to_json
      req_options = { use_ssl: uri.scheme == "https", }
      response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
        http.request(request)
      end
      JSON.parse(response.body, object_class: OpenStruct)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
keppler_watson-0.1.1 lib/keppler_watson/personality_insights.rb
keppler_watson-0.1.0 lib/keppler_watson/personality_insights.rb