Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add faraday adapter customization #122

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/facebook_ads.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ def configure

require 'facebook_ads/ruby2patch'

require 'facebook_ads/session'
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because it does require faraday which is now needed in config for the default value

require 'facebook_ads/config'
require 'facebook_ads/errors'
require 'facebook_ads/session'
require 'facebook_ads/fields'
require 'facebook_ads/edge'
require 'facebook_ads/param_set'
Expand Down
1 change: 1 addition & 0 deletions lib/facebook_ads/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ def self.setting(name, default = nil)
setting :app_secret, ENV['FB_APP_SECRET']
setting :crash_logging_enabled, true
setting :log_api_bodies, false
setting :faraday_adapter, Faraday.default_adapter

def logger=(logger)
Utils.logger = logger
Expand Down
2 changes: 1 addition & 1 deletion lib/facebook_ads/session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def api_conn
faraday.request :url_encoded

faraday.response :logger, Utils.logger, bodies: FacebookAds.config.log_api_bodies
faraday.adapter Faraday.default_adapter
faraday.adapter FacebookAds.config.faraday_adapter
end
end

Expand Down
42 changes: 42 additions & 0 deletions spec/config_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
#
# You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
# copy, modify, and distribute this software in source code or binary form for use
# in connection with the web services and APIs provided by Facebook.
#
# As with any software that integrates with the Facebook platform, your use of
# this software is subject to the Facebook Platform Policy
# [http://developers.facebook.com/policy/]. This copyright notice shall be
# included in all copies or substantial portions of the software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


RSpec.describe FacebookAds::Config do
it 'provides with default config' do
expect(subject).to have_attributes(
server_host: FacebookAds::DEFAULT_HOST,
api_version: FacebookAds::DEFAULT_API_VERSION,
access_token: ENV['FB_ACCESS_TOKEN'],
app_secret: ENV['FB_APP_SECRET'],
crash_logging_enabled: true,
log_api_bodies: false,
faraday_adapter: Faraday.default_adapter
)
end

context 'custom config' do
let(:fake_adapter) { double(:fake_adapter) }

it 'saves custom values' do
subject.faraday_adapter = fake_adapter

expect(subject.faraday_adapter).to eq fake_adapter
end
end
end