Class: LinkshareAPI::LinkGenerator
- Inherits:
-
Object
- Object
- LinkshareAPI::LinkGenerator
- Includes:
- HTTParty
- Defined in:
- lib/linkshare_api/link_generator.rb
Overview
For implementation details please visit rakutenlinkshare.zendesk.com/hc/en-us/articles/201343135-Automated-LinkGenerator-Guidelines
Instance Attribute Summary collapse
-
#api_base_url ⇒ Object
readonly
Returns the value of attribute api_base_url.
-
#api_timeout ⇒ Object
readonly
Returns the value of attribute api_timeout.
-
#token ⇒ Object
readonly
Returns the value of attribute token.
Instance Method Summary collapse
- #build(mid, murl) ⇒ Object
-
#initialize ⇒ LinkGenerator
constructor
A new instance of LinkGenerator.
Constructor Details
#initialize ⇒ LinkGenerator
Returns a new instance of LinkGenerator.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/linkshare_api/link_generator.rb', line 12 def initialize @token = LinkshareAPI.token @api_base_url = LinkshareAPI::WEB_SERVICE_URIS[:link_generator] @api_timeout = LinkshareAPI.api_timeout if @token.nil? raise AuthenticationError.new( "No token. Set your token by using 'LinkshareAPI.token = <TOKEN>'. " + "You can retrieve your token from LinkhShare's Web Services page under the Links tab. " + "See https://rakutenlinkshare.zendesk.com/hc/en-us/articles/200992487-What-is-a-Web-Services-Token-Feed-Token- for details." ) end self.class.default_timeout @api_timeout end |
Instance Attribute Details
#api_base_url ⇒ Object (readonly)
Returns the value of attribute api_base_url.
10 11 12 |
# File 'lib/linkshare_api/link_generator.rb', line 10 def api_base_url @api_base_url end |
#api_timeout ⇒ Object (readonly)
Returns the value of attribute api_timeout.
10 11 12 |
# File 'lib/linkshare_api/link_generator.rb', line 10 def api_timeout @api_timeout end |
#token ⇒ Object (readonly)
Returns the value of attribute token.
10 11 12 |
# File 'lib/linkshare_api/link_generator.rb', line 10 def token @token end |
Instance Method Details
#build(mid, murl) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/linkshare_api/link_generator.rb', line 28 def build(mid, murl) raise ArgumentError, "mid must be a Fixnum, got #{mid.class} instead" unless mid.is_a?(Fixnum) query_string = "token=#{CGI.escape(token)}" query_string << "&mid=#{mid}" # murl must not be encoded (RFC ftw) query_string << "&murl=#{murl}" api_request_url = "#{api_base_url}?#{query_string}" begin response = self.class.get(api_request_url) rescue Timeout::Error, Net::OpenTimeout raise ConnectionError.new("Timeout error (#{api_timeout}s)") end if response.code != 200 raise Error.new("Unexpected response: #{response.}", response.code) end # If the body content looks like an URL, then would be # safe to assume that the request was processed correctly unless response.body.start_with? "http://", "https://" raise InvalidRequestError.new(response.body) end response.body end |