Skip to content

Commit

Permalink
use httpclient instead of rest-open-uri
Browse files Browse the repository at this point in the history
  • Loading branch information
Cory Lown committed Mar 5, 2014
1 parent bf4c453 commit 75f0b56
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 14 deletions.
3 changes: 1 addition & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
source "https://rubygems.org"

gem "rest-open-uri", "~> 1.0.0"
gem 'httpclient'
gem "nokogiri"
gem "rest-client"
gem "json"
gem "fakeweb"

Expand Down
2 changes: 1 addition & 1 deletion examples/basic_example.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
pp hits

# Retrieve and display number of results
doc = Nokogiri::XML(hits)
doc = Nokogiri::XML(hits.body)
doc.remove_namespaces!
puts "Number of Results: #{doc.xpath("//TotalHits").inner_text}"

Expand Down
35 changes: 24 additions & 11 deletions lib/ruby_eds.rb
Original file line number Diff line number Diff line change
@@ -1,38 +1,51 @@
require 'rest-open-uri'
require 'nokogiri'
require 'rest-client'
require 'json'
require 'httpclient'

module RubyEDS

def authenticate_user(username, password)
auth_json = {"UserId"=>"#{username}","Password"=>"#{password}","InterfaceId"=>"WSapi"}.to_json
response = open('https://eds-api.ebscohost.com/authservice/rest/UIDAuth', :method=>:post, :body => auth_json, 'Content-Type' => 'application/json')
doc = Nokogiri::XML(response.read)
response = HTTPClient.post('https://eds-api.ebscohost.com/authservice/rest/uidauth',
auth_json, 'Content-Type' => 'application/json')
doc = Nokogiri::XML(response.body)
doc.remove_namespaces!
auth_token = doc.xpath("//AuthToken").inner_text
@auth_token = doc.xpath("//AuthToken").inner_text
end

def open_session(profile, guest, auth_token)
response = RestClient.get "http://eds-api.ebscohost.com/edsapi/rest/CreateSession", {:params=>{"profile"=>profile, "guest"=>guest}, :content_type=>:json, "x-authenticationToken"=>auth_token}
doc = Nokogiri::XML(response)
response = HTTPClient.get('http://eds-api.ebscohost.com/edsapi/rest/CreateSession',
{"profile"=>"#{profile}", "guest"=>"#{guest}"},
{'ContentType'=>'application/json', "x-authenticationToken" => "#{auth_token}" } )
doc = Nokogiri::XML(response.body)
doc.remove_namespaces!
session_token = doc.xpath("//SessionToken").inner_text
end

def close_session(session_token, auth_token)
response = RestClient.get "http://eds-api.ebscohost.com/edsapi/rest/endsession", {:params=>{"sessiontoken"=>session_token}, :content_type=>:json, "x-authenticationToken"=>auth_token, "x-sessionToken"=>session_token}
doc = Nokogiri::XML(response)
response = HTTPClient.get("http://eds-api.ebscohost.com/edsapi/rest/endsession",
{ "sessiontoken"=> "#{session_token}" },
{"ContentType" => 'application/json',
"x-authenticationToken"=>"#{auth_token}",
"x-sessionToken"=>"#{session_token}"})
doc = Nokogiri::XML(response.body)
doc.remove_namespaces!
success = doc.xpath("//IsSuccessful").inner_text
end

def get_info(session_token, auth_token, return_type="xml")
response = RestClient.get "http://eds-api.ebscohost.com/edsapi/rest/info", "x-authenticationToken"=>auth_token, "x-sessionToken"=>session_token, :accept=>return_type
response = HTTPClient.get("http://eds-api.ebscohost.com/edsapi/rest/info", {},
{ "x-authenticationToken" => "#{auth_token}",
"x-sessionToken" => "#{session_token}",
'Accept' => "#{return_type}"})
end

def basic_search(query, session_token, auth_token, view='brief', offset=1, limit=10, order='relevance', return_type="xml")
response = RestClient.get "http://eds-api.ebscohost.com/edsapi/rest/Search", {:params=>{"query-1"=>query}, "x-authenticationToken"=>auth_token, "x-sessionToken"=>session_token, :accept=>return_type}
response = HTTPClient.get("http://eds-api.ebscohost.com/edsapi/rest/Search",
{ "query-1" => "#{query}" },
{"x-authenticationToken" => "#{auth_token}",
"x-sessionToken" => "#{session_token}",
"Accept" => "#{return_type}"})
end

def advanced_search(search_json, return_type="xml")
Expand Down

0 comments on commit 75f0b56

Please sign in to comment.