Class: BeemusicApi::HttpClient
- Inherits:
-
Object
- Object
- BeemusicApi::HttpClient
- Defined in:
- lib/beemusic_api.rb
Defined Under Namespace
Classes: RequestResponse
Instance Method Summary collapse
- #authenticate(user, password, session = {}) ⇒ Object
- #delete(url, params = {}) ⇒ Object
- #get(url, params = {}) ⇒ Object
-
#initialize(server_url, debug = true) ⇒ HttpClient
constructor
A new instance of HttpClient.
- #post(url, params) ⇒ Object
- #product(id) ⇒ Object
- #products(per_page: 10, page: 1) ⇒ Object
- #put(url, params) ⇒ Object
- #upload_binary(url, payload) ⇒ Object
Constructor Details
#initialize(server_url, debug = true) ⇒ HttpClient
Returns a new instance of HttpClient.
6 7 8 9 |
# File 'lib/beemusic_api.rb', line 6 def initialize(server_url, debug = true) @server_url = server_url @debug = debug end |
Instance Method Details
#authenticate(user, password, session = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/beemusic_api.rb', line 11 def authenticate(user, password, session = {}) unless session.empty? @cookies = session @user = user @password = password return session end response = post( "/auth/credentials", { UserName: user, Password: password, RememberMe: true } ) if response.valid? @cookies = response. @user = user @password = password end response. end |
#delete(url, params = {}) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/beemusic_api.rb', line 87 def delete(url, params = {}) if @debug puts "url = #{url}" puts "params = #{params}" end params.merge!({ params: params[:params].to_json, content_type: :json, accept: :json }) params.merge!(cookies: @cookies) unless @cookies.nil? RequestResponse.new(RestClient.delete("#{@server_url}/#{url}", params)).response end |
#get(url, params = {}) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/beemusic_api.rb', line 104 def get(url, params = {}) if @debug puts "url = #{url}" puts "params = #{params}" end params.merge!({ params: params[:params].to_json, content_type: :json, accept: :json }) params.merge!(cookies: @cookies) unless @cookies.nil? RequestResponse.new(RestClient.get("#{@server_url}/#{url}", params)).response end |
#post(url, params) ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/beemusic_api.rb', line 121 def post(url, params) if @debug puts "url = #{url}" puts "params = #{params}" end headers = { content_type: :json, accept: :json } headers.merge!(cookies: @cookies) unless @cookies.nil? puts "headers = #{headers}" RequestResponse.new( RestClient.post( "#{@server_url}/#{url}", params.to_json, headers ) do |response, request, result| response end ) end |
#product(id) ⇒ Object
69 70 71 72 |
# File 'lib/beemusic_api.rb', line 69 def product(id) r = JSON.parse(get("/product/#{id}")) BeemusicApi::Models::Product.build(self, r) end |
#products(per_page: 10, page: 1) ⇒ Object
64 65 66 67 |
# File 'lib/beemusic_api.rb', line 64 def products(per_page: 10, page: 1) r = JSON.parse(get("/productpaging/#{per_page}/#{page}")) BeemusicApi::Models::Product.build(self, r['Products'], total_entries: r['ItemsCount'].to_i, current_page: r['CurrentPage'].to_i) end |
#put(url, params) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/beemusic_api.rb', line 38 def put(url, params) if @debug puts "url = #{url}" puts "params = #{params}" end headers = { content_type: :json, accept: :json } headers.merge!(cookies: @cookies) unless @cookies.nil? puts "headers = #{headers}" RequestResponse.new( RestClient.put( "#{@server_url}/#{url}", params.to_json, headers ) do |response, request, result| response end ) end |
#upload_binary(url, payload) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/beemusic_api.rb', line 74 def upload_binary(url, payload) r = Faraday.new(@server_url, :ssl => {:verify => false}) do |conn| conn.request :multipart conn.request :url_encoded conn.response :logger conn.adapter :net_http conn.headers['Cookie'] = @cookies.collect{|k, v| "#{k}=#{v}"}.join('; ') conn.basic_auth(@user, @password) end r.post(url, payload) end |