lib/cloudinary/base_api.rb in cloudinary-1.21.0 vs lib/cloudinary/base_api.rb in cloudinary-1.22.0

- old
+ new

@@ -57,23 +57,39 @@ end end private - def call_cloudinary_api(method, uri, user, password, params, options, &api_url_builder) + def call_cloudinary_api(method, uri, auth, params, options, &api_url_builder) cloudinary = options[:upload_prefix] || Cloudinary.config.upload_prefix || 'https://api.cloudinary.com' api_url = Cloudinary::Utils.smart_escape(api_url_builder.call(cloudinary, uri).flatten.join('/')) timeout = options[:timeout] || Cloudinary.config.timeout || 60 proxy = options[:api_proxy] || Cloudinary.config.api_proxy headers = { "User-Agent" => Cloudinary::USER_AGENT } + headers.merge!("Authorization" => get_authorization_header_value(auth)) if options[:content_type] == :json payload = params.to_json headers.merge!("Content-Type" => "application/json", "Accept" => "application/json") else payload = params.reject { |_, v| v.nil? || v == "" } end - call_json_api(method, api_url, payload, timeout, headers, proxy, user, password) + call_json_api(method, api_url, payload, timeout, headers, proxy) + end + + def get_authorization_header_value(auth) + if auth[:oauth_token].present? + "Bearer #{auth[:oauth_token]}" + else + "Basic #{Base64.urlsafe_encode64("#{auth[:key]}:#{auth[:secret]}")}" + end + end + + def validate_authorization(api_key, api_secret, oauth_token) + return if oauth_token.present? + + raise("Must supply api_key") if api_key.nil? + raise("Must supply api_secret") if api_secret.nil? end end