Class: Google::Apis::Core::ApiCommand
- Inherits:
- 
      HttpCommand
      
        - Object
- HttpCommand
- Google::Apis::Core::ApiCommand
 
- Defined in:
- lib/google/apis/core/api_command.rb
Overview
Command for executing most basic API request with JSON requests/responses
Direct Known Subclasses
Constant Summary collapse
- JSON_CONTENT_TYPE =
- 'application/json'
- FIELDS_PARAM =
- 'fields'
- ERROR_REASON_MAPPING =
- { 'rateLimitExceeded' => Google::Apis::RateLimitError, 'userRateLimitExceeded' => Google::Apis::RateLimitError, 'projectNotLinked' => Google::Apis::ProjectNotLinkedError } 
Constants inherited from HttpCommand
Instance Attribute Summary collapse
- 
  
    
      #request_object  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Request body to serialize. 
- 
  
    
      #request_representation  ⇒ Google::Apis::Core::JsonRepresentation 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    JSON serializer for request objects. 
- 
  
    
      #response_class  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Class to instantiate when de-serializing responses. 
- 
  
    
      #response_representation  ⇒ Google::Apis::Core::JsonRepresentation 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    JSON serializer for response objects. 
Attributes inherited from HttpCommand
#body, #connection, #header, #method, #options, #params, #query, #url
Instance Method Summary collapse
- #allow_form_encoding? ⇒ Boolean
- 
  
    
      #check_status(status, header = nil, body = nil, message = nil)  
    
    
  
  
  
  
  
  
  
  
  
    Check the response and raise error if needed. 
- 
  
    
      #decode_response_body(content_type, body)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Deserialize the response body if present. 
- 
  
    
      #prepare!  
    
    
  
  
  
  
  
  
  
  
  
    Serialize the request body. 
Methods inherited from HttpCommand
#apply_request_options, #authorization_refreshable?, #error, #execute, #initialize, #process_response, #success
Methods included from Logging
Constructor Details
This class inherits a constructor from Google::Apis::Core::HttpCommand
Instance Attribute Details
#request_object ⇒ Object
Request body to serialize
| 41 42 43 | # File 'lib/google/apis/core/api_command.rb', line 41 def request_object @request_object end | 
#request_representation ⇒ Google::Apis::Core::JsonRepresentation
JSON serializer for request objects
| 37 38 39 | # File 'lib/google/apis/core/api_command.rb', line 37 def request_representation @request_representation end | 
#response_class ⇒ Object
Class to instantiate when de-serializing responses
| 49 50 51 | # File 'lib/google/apis/core/api_command.rb', line 49 def response_class @response_class end | 
#response_representation ⇒ Google::Apis::Core::JsonRepresentation
JSON serializer for response objects
| 45 46 47 | # File 'lib/google/apis/core/api_command.rb', line 45 def response_representation @response_representation end | 
Instance Method Details
#allow_form_encoding? ⇒ Boolean
| 122 123 124 | # File 'lib/google/apis/core/api_command.rb', line 122 def allow_form_encoding? request_representation.nil? && super end | 
#check_status(status, header = nil, body = nil, message = nil)
This method returns an undefined value.
Check the response and raise error if needed
| 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | # File 'lib/google/apis/core/api_command.rb', line 103 def check_status(status, header = nil, body = nil, = nil) case status when 400, 402...500 reason, = parse_error(body) if reason = sprintf('%s: %s', reason, ) raise ERROR_REASON_MAPPING[reason].new( , status_code: status, header: header, body: body ) if ERROR_REASON_MAPPING.key?(reason) end super(status, header, body, ) else super(status, header, body, ) end end | 
#decode_response_body(content_type, body) ⇒ Object
Deserialize the response body if present
noinspection RubyUnusedLocalVariable
| 79 80 81 82 83 84 85 86 87 | # File 'lib/google/apis/core/api_command.rb', line 79 def decode_response_body(content_type, body) return super unless response_representation return super if && .skip_deserialization return super if content_type.nil? return nil unless content_type.start_with?(JSON_CONTENT_TYPE) instance = response_class.new response_representation.new(instance).from_json(body, unwrap: response_class) instance end | 
#prepare!
This method returns an undefined value.
Serialize the request body
| 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # File 'lib/google/apis/core/api_command.rb', line 54 def prepare! if && .api_format_version header['X-Goog-Api-Format-Version'] = .api_format_version.to_s end query[FIELDS_PARAM] = normalize_fields_param(query[FIELDS_PARAM]) if query.key?(FIELDS_PARAM) if request_representation && request_object header['Content-Type'] ||= JSON_CONTENT_TYPE if && .skip_serialization self.body = request_object else self.body = request_representation.new(request_object).to_json(user_options: { skip_undefined: true }) end end super end |