Module: ContextIO::CallHelpers

Includes:
CollectionHelper
Included in:
Account, ConnectToken, Contact, ContextIO, Discovery, EmailAddress, Files, Folder, Message, OauthProvider, Sources, Sync, Threads, Webhook
Defined in:
lib/context_io/utilities/call_helpers.rb

Instance Method Summary collapse

Methods included from CollectionHelper

#collection_return, #contact_collection_return

Instance Method Details

#build_url(resource, identifier) ⇒ Object



16
17
18
# File 'lib/context_io/utilities/call_helpers.rb', line 16

def build_url(resource, identifier)
  "#{parent.call_url}/#{resource}/#{identifier}"
end

#call_api_return_new_object(klass:, url:, method: :get, parent: nil, valid_params: nil, given_params: nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/context_io/utilities/call_helpers.rb', line 32

def call_api_return_new_object(klass:,
                               url:,
                               method: :get,
                               parent: nil,
                               valid_params: nil,
                               given_params: nil)
  request, api_call_made = call_api(method: method,
                                    url: url,
                                    given_params: given_params,
                                    valid_params: valid_params)
  klass.new(parent: parent || self,
            response: request.response,
            status: request.status,
            success: request.success,
            api_call_made: api_call_made)
end

#call_api_return_updated_object(klass:, url:, identifier:, method: :post, valid_params: nil, given_params: nil) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/context_io/utilities/call_helpers.rb', line 49

def call_api_return_updated_object(klass:,
                                   url:,
                                   identifier:,
                                   method: :post,
                                   valid_params: nil,
                                   given_params: nil)
  request, api_call_made = call_api(method: method,
                                    url: url,
                                    given_params: given_params,
                                    valid_params: valid_params)
  object = klass.new(parent: parent,
                     response: request.response,
                     identifier: identifier,
                     status: request.status,
                     success: request.success,
                     api_call_made: api_call_made)
  return_post_api_call_made(object)
end

#deleteObject

Raises:

  • (StandardError)


90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/context_io/utilities/call_helpers.rb', line 90

def delete
  request = Request.new(connection, :delete, call_url)
  raise StandardError, build_error_message(request.status, request.response) if request.success == false
  api_call_made = build_api_call_made(request.url,
                                      :delete,
                                      nil,
                                      nil)
  DeletedResource.new(response: request.response,
                      status: request.status,
                      success: request.success,
                      api_call_made: api_call_made)
end

#get(**kwargs) ⇒ Object



86
87
88
# File 'lib/context_io/utilities/call_helpers.rb', line 86

def get(**kwargs)
  get_request(given_params: kwargs)
end

#get_request(given_params: nil, valid_params: nil, url: nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/context_io/utilities/call_helpers.rb', line 20

def get_request(given_params: nil, valid_params: nil, url: nil)
  request, api_call_made = call_api(method: :get,
                                    url: url || call_url,
                                    given_params: given_params,
                                    valid_params:valid_params)
  parse_response(request.response)
  @status = request.status
  @success = check_success(status)
  @api_call_made = api_call_made
  self
end

#parse_response(response) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/context_io/utilities/call_helpers.rb', line 5

def parse_response(response)
  if [Array, String].include?(response.class)
    @response = response
  else
    response.each do |k,v|
      key = k.to_s.gsub('-', '_')
      instance_variable_set("@#{key}", v)
    end
  end
end

#return_post_api_call_made(object) ⇒ Object



107
108
109
110
111
112
# File 'lib/context_io/utilities/call_helpers.rb', line 107

def return_post_api_call_made(object)
  call_made = object.api_call_made
  object.get
  object.api_call_made = call_made
  object
end

#success?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/context_io/utilities/call_helpers.rb', line 103

def success?
  self.success
end

#validate_params(inputed_params, valid_params) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/context_io/utilities/call_helpers.rb', line 68

def validate_params(inputed_params, valid_params)
  return [nil, nil] if inputed_params.nil?
  rejected_params = []
  params = []
  inputed_params.map do |key, value|
    if valid_params.include?(key)
      params << [key, value]
    else
      rejected_params << key
    end
  end
  params = params.compact
  if !params.empty?
    params = params.to_h
  end
  [params, rejected_params]
end