lib/lelylan/connection.rb in lelylan-rb-0.0.1 vs lib/lelylan/connection.rb in lelylan-rb-0.0.2
- old
+ new
@@ -1,23 +1,30 @@
+require 'base64'
require 'faraday_middleware'
require 'faraday/response/raise_http_error'
module Lelylan
module Connection
private
- def connection(authenticate=true, raw=false, version=0, force_urlencoded=false)
+ def connection(authenticate=true, raw=false, version=0, force_urlencoded=false, path='')
options = {
:headers => {'Accept' => 'application/json', 'User-Agent' => user_agent, 'Content-Type' => 'application/json'},
:proxy => proxy,
:ssl => { :verify => false },
:url => Lelylan.api_endpoint
}
if authenticated?
self.token = token.refresh! if token.expired?
- options[:headers].merge!('Authorization' => "Bearer #{token.token}")
+ options[:headers].merge!('Authorization' => "Bearer #{token.token}")
+ end
+
+ if path =~ /subscriptions/
+ raise Lelylan::Error, 'To make a request to the realtime services you need both client id and client secret' if (!client_id or !client_secret) and path =~ /subscriptions/
+ basic = Base64.encode64("#{self.client_id}:#{self.client_secret}")
+ options[:headers].merge!('Authorization' => "Bearer #{basic}")
end
connection = Faraday.new(options) do |builder|
builder.request :json
builder.use Faraday::Response::RaiseHttpError