Sha256: 2140c61640a40d651d5b677dfc93d095d683aa77fc4e7a3b036093e3a67e6a27

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

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

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

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

    def analyze(method, params)
      if method.eql?(:post)
        api_post(:analyze, params)
      end
    end

    private

    def api_url
      'https://gateway.watsonplatform.net/natural-language-understanding/api/v1'
    end

    def api_post(action, params)
      uri = URI.parse("#{api_url}/#{action.to_s}?version=#{@version}")
      request = Net::HTTP::Post.new(uri)
      request['Content-Type'] = "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/natural_lenguage.rb
keppler_watson-0.1.0 lib/keppler_watson/natural_lenguage.rb