Class: GroupDocs::Api::Request
- Inherits:
-
Object
- Object
- GroupDocs::Api::Request
- Includes:
- Helpers::Credentials, Helpers::REST, Helpers::URL
- Defined in:
- lib/groupdocs/api/request.rb
Constant Summary
Constants included from Helpers::REST
Helpers::REST::DEFAULT_HEADERS
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#execute! ⇒ Hash, String
Executes API request to server.
-
#initialize(options = {}) {|options| ... } ⇒ Request
constructor
Creates new API request.
-
#prepare_and_sign_url ⇒ String
Prepares, signs and returns absolute URL.
Methods included from Helpers::URL
Constructor Details
#initialize(options = {}) {|options| ... } ⇒ Request
Creates new API request.
38 39 40 41 42 43 44 |
# File 'lib/groupdocs/api/request.rb', line 38 def initialize( = {}, &blk) @options = yield @options if block_given? @options[:access] ||= {} @options[:sign] = true if @options[:sign].nil? @resource = RestClient::Resource.new(GroupDocs.api_server) end |
Instance Attribute Details
#access ⇒ Object
16 17 18 |
# File 'lib/groupdocs/api/request.rb', line 16 def access @access end |
#options ⇒ Object
14 15 16 |
# File 'lib/groupdocs/api/request.rb', line 14 def @options end |
#resource ⇒ Object (readonly)
10 11 12 |
# File 'lib/groupdocs/api/request.rb', line 10 def resource @resource end |
#response ⇒ Object
12 13 14 |
# File 'lib/groupdocs/api/request.rb', line 12 def response @response end |
Instance Method Details
#execute! ⇒ Hash, String
Executes API request to server.
It performs the following actions step by step:
* Prepends path with version if it's set
* Prepares and signs URL
* Prepare request (add headers, converts payload to JSON, etc.)
* Sends request to server
* Parses response
81 82 83 84 85 86 87 |
# File 'lib/groupdocs/api/request.rb', line 81 def execute! prepend_version prepare_and_sign_url prepare_request send_request parse_response end |
#prepare_and_sign_url ⇒ String
Prepares, signs and returns absolute URL.
It performs the following actions step by step:
* Parses path (i.e. replaces client ID)
* URL encodes path
* Signs URL
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/groupdocs/api/request.rb', line 56 def prepare_and_sign_url unless @signed # the order is important here and if client_id is replaced after path # is encoded, there might be bad requests replace_client_id if @options[:sign] url_encode_path sign_url if @options[:sign] @signed = true end [:path] end |