Class: RequestModel

Inherits:
Object
  • Object
show all
Defined in:
lib/wingify/packages/network_layer/models/request_model.rb

Overview

Copyright 2024-2026 Wingify Software Pvt. Ltd.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, method = 'GET', path = '', query = {}, body = {}, headers = {}, scheme = 'https', port = nil, retry_config = nil) ⇒ RequestModel

Returns a new instance of RequestModel.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 18

def initialize(url, method = 'GET', path = '', query = {}, body = {}, headers = {}, scheme = 'https', port = nil, retry_config = nil)
  @url = scheme + '://' + url
  @method = method
  @path = path
  @query = query
  @timeout = 5000
  @body = body
  @headers = headers
  @scheme = scheme
  @port = port
  @last_error = nil
  @retry_config = retry_config
  @event_name = nil
  @uuid = nil
  @campaign_id = nil
  @event_properties = nil
  if !@port.nil?
    @url = @url + ':' + @port.to_s
  end
  parse_options
  self
end

Instance Attribute Details

#bodyObject

Returns the value of attribute body.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def body
  @body
end

#campaign_idObject

Returns the value of attribute campaign_id.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def campaign_id
  @campaign_id
end

#event_nameObject

Returns the value of attribute event_name.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def event_name
  @event_name
end

#event_propertiesObject

Returns the value of attribute event_properties.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def event_properties
  @event_properties
end

#headersObject

Returns the value of attribute headers.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def headers
  @headers
end

#last_errorObject

Returns the value of attribute last_error.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def last_error
  @last_error
end

#methodObject

Returns the value of attribute method.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def method
  @method
end

#pathObject

Returns the value of attribute path.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def path
  @path
end

#portObject

Returns the value of attribute port.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def port
  @port
end

#queryObject

Returns the value of attribute query.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def query
  @query
end

#retry_configObject

Returns the value of attribute retry_config.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def retry_config
  @retry_config
end

#schemeObject

Returns the value of attribute scheme.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def scheme
  @scheme
end

#timeoutObject

Returns the value of attribute timeout.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def timeout
  @timeout
end

#urlObject

Returns the value of attribute url.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def url
  @url
end

#uuidObject

Returns the value of attribute uuid.



16
17
18
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 16

def uuid
  @uuid
end

Instance Method Details

#get_bodyObject



75
76
77
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 75

def get_body
  @body
end

#get_extra_infoObject



167
168
169
170
171
172
173
174
175
176
177
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 167

def get_extra_info
  extra_info = {}
  white_listed_keys = [:event_name, :uuid, :campaign_id, :event_properties]
  
  white_listed_keys.each do |key|
    value = instance_variable_get("@#{key}")
    extra_info[key] = value if !value.nil?
  end
  
  extra_info
end

#get_headersObject



83
84
85
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 83

def get_headers
  @headers
end

#get_last_errorObject



155
156
157
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 155

def get_last_error
  @last_error
end

#get_methodObject



131
132
133
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 131

def get_method
  @method
end

#get_pathObject



107
108
109
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 107

def get_path
  @path
end

#get_portObject



99
100
101
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 99

def get_port
  @port
end

#get_queryObject



115
116
117
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 115

def get_query
  @query
end

#get_retry_configObject



159
160
161
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 159

def get_retry_config
  @retry_config
end

#get_schemeObject



91
92
93
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 91

def get_scheme
  @scheme
end

#get_timeoutObject



67
68
69
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 67

def get_timeout
  @timeout
end

#get_urlObject



123
124
125
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 123

def get_url
  @url
end

#parse_optionsObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 41

def parse_options
  _hostname, collection_prefix = @url.split('/')
  
  # Process body if present
  if !@body.nil?
    @headers['Content-Type'] = 'application/json'
    @headers['Content-Length'] = @body.to_json.bytesize.to_s
  end

  # Process path and query parameters
  if !@path.nil?
    query_string = @query.map { |k,v| "#{k}=#{v}" }.join('&')
    @path = query_string.empty? ? @path : "#{@path}?#{query_string}"
  end

  # Add collection prefix if present
  @path = "#{collection_prefix}#{@path}" if collection_prefix
  
  # Add timeout
  @timeout = @timeout if @timeout
end

#set_body(body) ⇒ Object



71
72
73
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 71

def set_body(body)
  @body = body
end

#set_headers(headers) ⇒ Object



79
80
81
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 79

def set_headers(headers)
  @headers = headers
end

#set_last_error(last_error) ⇒ Object



151
152
153
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 151

def set_last_error(last_error)
  @last_error = last_error
end

#set_method(method) ⇒ Object



127
128
129
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 127

def set_method(method)
  @method = method
end

#set_path(path) ⇒ Object



103
104
105
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 103

def set_path(path)
  @path = path
end

#set_port(port) ⇒ Object



95
96
97
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 95

def set_port(port)
  @port = port
end

#set_query(query) ⇒ Object



111
112
113
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 111

def set_query(query)
  @query = query
end

#set_retry_config(retry_config) ⇒ Object



163
164
165
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 163

def set_retry_config(retry_config)
  @retry_config = retry_config
end

#set_scheme(scheme) ⇒ Object



87
88
89
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 87

def set_scheme(scheme)
  @scheme = scheme
end

#set_timeout(timeout) ⇒ Object



63
64
65
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 63

def set_timeout(timeout)
  @timeout = timeout
end

#set_url(url) ⇒ Object



119
120
121
# File 'lib/wingify/packages/network_layer/models/request_model.rb', line 119

def set_url(url)
  @url = url
end