Class: RubyBranch::API::Resources::Link
- Inherits:
-
Object
- Object
- RubyBranch::API::Resources::Link
- Defined in:
- lib/ruby_branch/api/resources/link.rb
Constant Summary collapse
- LINK_LENGTH_LIMIT =
2000
Instance Method Summary collapse
- #build(analytics: {}, data: {}, settings: {}) ⇒ Object
- #create(analytics: {}, data: {}, settings: {}) ⇒ Object
- #create_safely(analytics: {}, data: {}, settings: {}) ⇒ Object
Instance Method Details
#build(analytics: {}, data: {}, settings: {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ruby_branch/api/resources/link.rb', line 28 def build(analytics: {}, data: {}, settings: {}) params = {} params.merge!(prepare_analytics(analytics)) params.merge!(prepare_settings(settings)) params.merge!(data) link = Addressable::URI.new( scheme: 'https', host: RubyBranch.config.branch_domain, path: "/a/#{RubyBranch.config.api_key}", query: ToQuery.call(params) ).to_s check_for_link_length_limit(link) link end |
#create(analytics: {}, data: {}, settings: {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ruby_branch/api/resources/link.rb', line 14 def create(analytics: {}, data: {}, settings: {}) request_body = build_request_body(analytics, settings, data) response = do_create_request(request_body) return response.json[:url] if response.success? error_attrs = { status: response.status, body: response.body } if defined?(Bugsnag) && defined?(Rails) Bugsnag.notify(Errors::ApiResponseError.new, error_attrs) if Rails.env.production? end RubyBranch.config.link_to_homepage if RubyBranch.config.link_to_homepage end |
#create_safely(analytics: {}, data: {}, settings: {}) ⇒ Object
8 9 10 11 12 |
# File 'lib/ruby_branch/api/resources/link.rb', line 8 def create_safely(analytics: {}, data: {}, settings: {}) build(analytics: analytics, data: data, settings: settings) rescue Errors::LinkLengthExceedError create(analytics: analytics, data: data, settings: settings) end |