Class: Smartsheet::API::RequestSpec

Inherits:
Object
  • Object
show all
Defined in:
lib/smartsheet/api/request_spec.rb

Overview

Specification for a single API request's arguments

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params: {}, header_overrides: {}, body: nil, file_spec: nil, **url_args) ⇒ RequestSpec

Returns a new instance of RequestSpec.

Parameters:

  • params (Hash{Object=>Object}) (defaults to: {})

    URL parameters for the request

  • header_overrides (Hash{Object=>Object}) (defaults to: {})

    HTTP headers to sent in the request; these override all default headers sent by the SDK and the particular endpoint

  • body (Object) (defaults to: nil)

    The body of the HTTP request, to be interpreted based on the endpoint specification

  • file_spec (PathFileSpec, ObjectFileSpec) (defaults to: nil)

    Specification for files, to be used when an endpoint requires a file upload

  • **url_args (Hash{Symbol=>Object})

    Values that will be used to fill in parameterized segments of an endpoint path specificaiton



24
25
26
27
28
29
30
# File 'lib/smartsheet/api/request_spec.rb', line 24

def initialize(params: {}, header_overrides: {}, body: nil, file_spec: nil, **url_args)
  @url_args = url_args
  @params = params
  @header_overrides = header_overrides
  @body = body
  @file_spec = file_spec
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



8
9
10
# File 'lib/smartsheet/api/request_spec.rb', line 8

def body
  @body
end

#header_overridesObject (readonly)

Returns the value of attribute header_overrides.



8
9
10
# File 'lib/smartsheet/api/request_spec.rb', line 8

def header_overrides
  @header_overrides
end

#paramsObject (readonly)

Returns the value of attribute params.



8
9
10
# File 'lib/smartsheet/api/request_spec.rb', line 8

def params
  @params
end

#url_argsObject (readonly)

Returns the value of attribute url_args.



8
9
10
# File 'lib/smartsheet/api/request_spec.rb', line 8

def url_args
  @url_args
end

Instance Method Details

#content_typeObject



36
37
38
# File 'lib/smartsheet/api/request_spec.rb', line 36

def content_type
  file_spec.content_type
end

#file_bodyObject



52
53
54
# File 'lib/smartsheet/api/request_spec.rb', line 52

def file_body
  file_spec.upload_io
end

#file_lengthObject



40
41
42
# File 'lib/smartsheet/api/request_spec.rb', line 40

def file_length
  file_spec.file_length
end

#filenameObject



32
33
34
# File 'lib/smartsheet/api/request_spec.rb', line 32

def filename
  file_spec.filename
end

#json_bodyObject



44
45
46
47
48
49
50
# File 'lib/smartsheet/api/request_spec.rb', line 44

def json_body
  if body.nil? || body.is_a?(String)
    body
  else
    body.to_camelback_keys.to_json
  end
end