Class: ActionPushNative::Service::Apns::HttpxSession
- Inherits:
-
Object
- Object
- ActionPushNative::Service::Apns::HttpxSession
- Defined in:
- lib/action_push_native/service/apns/httpx_session.rb
Constant Summary collapse
- DEFAULT_POOL_SIZE =
5- DEFAULT_REQUEST_TIMEOUT =
30.seconds
- DEVELOPMENT_SERVER_URL =
"https://api.sandbox.push.apple.com:443"- PRODUCTION_SERVER_URL =
"https://api.push.apple.com:443"
Instance Method Summary collapse
-
#initialize(config) ⇒ HttpxSession
constructor
A new instance of HttpxSession.
- #post(*uri, **options) ⇒ Object
Constructor Details
#initialize(config) ⇒ HttpxSession
Returns a new instance of HttpxSession.
9 10 11 12 13 14 15 16 17 |
# File 'lib/action_push_native/service/apns/httpx_session.rb', line 9 def initialize(config) @session = \ HTTPX. plugin(:persistent, close_on_fork: true). with(pool_options: { max_connections: config[:connection_pool_size] || DEFAULT_POOL_SIZE }). with(timeout: { request_timeout: config[:request_timeout] || DEFAULT_REQUEST_TIMEOUT }). with(origin: config[:connect_to_development_server] ? DEVELOPMENT_SERVER_URL : PRODUCTION_SERVER_URL) @token_provider = ActionPushNative::Service::Apns::TokenProvider.new(config) end |
Instance Method Details
#post(*uri, **options) ⇒ Object
19 20 21 22 |
# File 'lib/action_push_native/service/apns/httpx_session.rb', line 19 def post(*uri, **) [:headers][:authorization] = "Bearer #{token_provider.fresh_access_token}" session.post(*uri, **) end |