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
- #delete(url:) ⇒ Object
- #update(url:, analytics: {}, data: {}, settings: {}) ⇒ Object
- #update_safely(url:, analytics: {}, data: {}, settings: {}) ⇒ Object
Instance Method Details
#build(analytics: {}, data: {}, settings: {}) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/ruby_branch/api/resources/link.rb', line 50 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
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/ruby_branch/api/resources/link.rb', line 20 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? process_error(response) 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 |
#delete(url:) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/ruby_branch/api/resources/link.rb', line 41 def delete(url:) response = do_delete_request(url) return true if response.success? process_error(response) false end |
#update(url:, analytics: {}, data: {}, settings: {}) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/ruby_branch/api/resources/link.rb', line 31 def update(url:, analytics: {}, data: {}, settings: {}) request_body = build_request_body(analytics, settings, data) response = do_update_request(url, request_body) return true if response.success? process_error(response) false end |
#update_safely(url:, analytics: {}, data: {}, settings: {}) ⇒ Object
14 15 16 17 18 |
# File 'lib/ruby_branch/api/resources/link.rb', line 14 def update_safely(url:, analytics: {}, data: {}, settings: {}) build(analytics: analytics, data: data, settings: settings) rescue Errors::LinkLengthExceedError update(url: url, analytics: analytics, data: data, settings: settings) end |