Class: FirebaseDynamicLink::Client
- Inherits:
-
Object
- Object
- FirebaseDynamicLink::Client
- Extended by:
- Forwardable
- Defined in:
- lib/firebase_dynamic_link/client.rb
Overview
Main class that responsible to shorten link or parameters
Instance Method Summary collapse
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #shorten_link(link, options = {}) ⇒ Hash{Symbol=>String}
- #shorten_parameters(params, options = {}) ⇒ Hash{Symbol=>String}
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
13 14 15 16 |
# File 'lib/firebase_dynamic_link/client.rb', line 13 def initialize @link_renderer = FirebaseDynamicLink::LinkRenderer.new @connection = FirebaseDynamicLink::Connection.new(end_point) end |
Instance Method Details
#shorten_link(link, options = {}) ⇒ Hash{Symbol=>String}
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/firebase_dynamic_link/client.rb', line 26 def shorten_link(link, = {}) connection.timeout = [:timeout] if .key?(:timeout) connection.open_timeout = [:open_timeout] if .key?(:open_timeout) suffix_option = [:suffix_option] if .key?(:suffix_option) params = CaseTransform2.camel_lower(long_dynamic_link: build_link(link, ), suffix: { option: suffix_option || config.suffix_option }) response = connection.post(nil, params.to_json) link_renderer.render(response) rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e raise FirebaseDynamicLink::ConnectionError, e. end |
#shorten_parameters(params, options = {}) ⇒ Hash{Symbol=>String}
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/firebase_dynamic_link/client.rb', line 125 def shorten_parameters(params, = {}) connection.timeout = [:timeout] if .key?(:timeout) connection.open_timeout = [:open_timeout] if .key?(:open_timeout) suffix_option = [:suffix_option] if .key?(:suffix_option) dynamic_link_domain = .delete(:dynamic_link_domain) dynamic_link_domain ||= config.dynamic_link_domain || raise(FirebaseDynamicLink::InvalidConfig, "Dynamic link domain is empty") dynamic_link_domain = URI.parse(dynamic_link_domain).host params = CaseTransform2.camel_lower(dynamic_link_info: params.merge(dynamicLinkDomain: dynamic_link_domain), suffix: { option: suffix_option || config.suffix_option }) response = connection.post(nil, params.to_json) link_renderer.render(response) rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e raise FirebaseDynamicLink::ConnectionError, e. end |