boxx_client 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +109 -0
  4. data/Rakefile +8 -0
  5. data/boxx_client.gemspec +46 -0
  6. data/dist/boxx_client-1.4.0.gem +0 -0
  7. data/dist/examples/upload_customer.rb +76 -0
  8. data/dist/examples/upload_product.rb +54 -0
  9. data/dist/examples/upload_transaction.rb +56 -0
  10. data/docs/DeleteAll.md +10 -0
  11. data/docs/DeleteAllApi.md +56 -0
  12. data/docs/DeleteSpecific.md +11 -0
  13. data/docs/DeleteSpecificApi.md +56 -0
  14. data/docs/InlineResponse200.md +9 -0
  15. data/docs/InlineResponse2001.md +9 -0
  16. data/docs/InlineResponse2001Response.md +9 -0
  17. data/docs/InlineResponse200Response.md +11 -0
  18. data/docs/InlineResponse400.md +9 -0
  19. data/docs/InlineResponse4001.md +9 -0
  20. data/docs/UploadCustomer.md +14 -0
  21. data/docs/UploadCustomerDeviceTokens.md +11 -0
  22. data/docs/UploadCustomerMobileTokens.md +10 -0
  23. data/docs/UploadCustomerRequest.md +11 -0
  24. data/docs/UploadDataApi.md +149 -0
  25. data/docs/UploadOkResponse.md +9 -0
  26. data/docs/UploadOkResponseResult.md +11 -0
  27. data/docs/UploadProduct.md +13 -0
  28. data/docs/UploadProductRequest.md +11 -0
  29. data/docs/UploadTransaction.md +16 -0
  30. data/docs/UploadTransactionRequest.md +11 -0
  31. data/git_push.sh +55 -0
  32. data/lib/boxx_client.rb +60 -0
  33. data/lib/boxx_client/api/delete_all_api.rb +78 -0
  34. data/lib/boxx_client/api/delete_specific_api.rb +78 -0
  35. data/lib/boxx_client/api/upload_data_api.rb +188 -0
  36. data/lib/boxx_client/api_client.rb +388 -0
  37. data/lib/boxx_client/api_error.rb +38 -0
  38. data/lib/boxx_client/configuration.rb +202 -0
  39. data/lib/boxx_client/models/delete_all.rb +224 -0
  40. data/lib/boxx_client/models/delete_specific.rb +241 -0
  41. data/lib/boxx_client/models/inline_response_200.rb +197 -0
  42. data/lib/boxx_client/models/inline_response_200_1.rb +197 -0
  43. data/lib/boxx_client/models/inline_response_200_1_response.rb +199 -0
  44. data/lib/boxx_client/models/inline_response_200_response.rb +217 -0
  45. data/lib/boxx_client/models/inline_response_400.rb +197 -0
  46. data/lib/boxx_client/models/inline_response_400_1.rb +197 -0
  47. data/lib/boxx_client/models/upload_customer.rb +255 -0
  48. data/lib/boxx_client/models/upload_customer_device_tokens.rb +215 -0
  49. data/lib/boxx_client/models/upload_customer_mobile_tokens.rb +206 -0
  50. data/lib/boxx_client/models/upload_customer_request.rb +236 -0
  51. data/lib/boxx_client/models/upload_ok_response.rb +197 -0
  52. data/lib/boxx_client/models/upload_ok_response_result.rb +217 -0
  53. data/lib/boxx_client/models/upload_product.rb +244 -0
  54. data/lib/boxx_client/models/upload_product_request.rb +236 -0
  55. data/lib/boxx_client/models/upload_transaction.rb +279 -0
  56. data/lib/boxx_client/models/upload_transaction_request.rb +236 -0
  57. data/lib/boxx_client/version.rb +15 -0
  58. data/spec/api/delete_all_api_spec.rb +47 -0
  59. data/spec/api/delete_specific_api_spec.rb +47 -0
  60. data/spec/api/upload_data_api_spec.rb +71 -0
  61. data/spec/api_client_spec.rb +226 -0
  62. data/spec/configuration_spec.rb +42 -0
  63. data/spec/models/delete_all_spec.rb +54 -0
  64. data/spec/models/delete_specific_spec.rb +60 -0
  65. data/spec/models/inline_response_200_1_response_spec.rb +48 -0
  66. data/spec/models/inline_response_200_1_spec.rb +48 -0
  67. data/spec/models/inline_response_200_response_spec.rb +60 -0
  68. data/spec/models/inline_response_200_spec.rb +48 -0
  69. data/spec/models/inline_response_400_1_spec.rb +48 -0
  70. data/spec/models/inline_response_400_spec.rb +48 -0
  71. data/spec/models/upload_customer_device_tokens_spec.rb +60 -0
  72. data/spec/models/upload_customer_mobile_tokens_spec.rb +54 -0
  73. data/spec/models/upload_customer_request_spec.rb +60 -0
  74. data/spec/models/upload_customer_spec.rb +78 -0
  75. data/spec/models/upload_ok_response_result_spec.rb +60 -0
  76. data/spec/models/upload_ok_response_spec.rb +48 -0
  77. data/spec/models/upload_product_request_spec.rb +60 -0
  78. data/spec/models/upload_product_spec.rb +72 -0
  79. data/spec/models/upload_transaction_request_spec.rb +60 -0
  80. data/spec/models/upload_transaction_spec.rb +90 -0
  81. data/spec/spec_helper.rb +111 -0
  82. metadata +327 -0
@@ -0,0 +1,38 @@
1
+ =begin
2
+ #Upload and Delete Data API
3
+
4
+ #Boxx.ai's customer, product and interaction data ingestion sdk
5
+
6
+ OpenAPI spec version: 1.4.1
7
+ Contact: aida@boxx.ai
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ module BoxxClient
14
+ class ApiError < StandardError
15
+ attr_reader :code, :response_headers, :response_body
16
+
17
+ # Usage examples:
18
+ # ApiError.new
19
+ # ApiError.new("message")
20
+ # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
21
+ # ApiError.new(:code => 404, :message => "Not Found")
22
+ def initialize(arg = nil)
23
+ if arg.is_a? Hash
24
+ if arg.key?(:message) || arg.key?('message')
25
+ super(arg[:message] || arg['message'])
26
+ else
27
+ super arg
28
+ end
29
+
30
+ arg.each do |k, v|
31
+ instance_variable_set "@#{k}", v
32
+ end
33
+ else
34
+ super arg
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,202 @@
1
+ =begin
2
+ #Upload and Delete Data API
3
+
4
+ #Boxx.ai's customer, product and interaction data ingestion sdk
5
+
6
+ OpenAPI spec version: 1.4.1
7
+ Contact: aida@boxx.ai
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'uri'
14
+
15
+ module BoxxClient
16
+ class Configuration
17
+ # Defines url scheme
18
+ attr_accessor :scheme
19
+
20
+ # Defines url host
21
+ attr_accessor :host
22
+
23
+ # Defines url base path
24
+ attr_accessor :base_path
25
+
26
+ # Defines API keys used with API Key authentications.
27
+ #
28
+ # @return [Hash] key: parameter name, value: parameter value (API key)
29
+ #
30
+ # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
31
+ # config.api_key['api_key'] = 'xxx'
32
+ attr_accessor :api_key
33
+
34
+ # Defines API key prefixes used with API Key authentications.
35
+ #
36
+ # @return [Hash] key: parameter name, value: API key prefix
37
+ #
38
+ # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
39
+ # config.api_key_prefix['api_key'] = 'Token'
40
+ attr_accessor :api_key_prefix
41
+
42
+ # Defines the username used with HTTP basic authentication.
43
+ #
44
+ # @return [String]
45
+ attr_accessor :username
46
+
47
+ # Defines the password used with HTTP basic authentication.
48
+ #
49
+ # @return [String]
50
+ attr_accessor :password
51
+
52
+ # Defines the access token (Bearer) used with OAuth2.
53
+ attr_accessor :access_token
54
+
55
+ # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
56
+ # details will be logged with `logger.debug` (see the `logger` attribute).
57
+ # Default to false.
58
+ #
59
+ # @return [true, false]
60
+ attr_accessor :debugging
61
+
62
+ # Defines the logger used for debugging.
63
+ # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
64
+ #
65
+ # @return [#debug]
66
+ attr_accessor :logger
67
+
68
+ # Defines the temporary folder to store downloaded files
69
+ # (for API endpoints that have file response).
70
+ # Default to use `Tempfile`.
71
+ #
72
+ # @return [String]
73
+ attr_accessor :temp_folder_path
74
+
75
+ # The time limit for HTTP request in seconds.
76
+ # Default to 0 (never times out).
77
+ attr_accessor :timeout
78
+
79
+ # Set this to false to skip client side validation in the operation.
80
+ # Default to true.
81
+ # @return [true, false]
82
+ attr_accessor :client_side_validation
83
+
84
+ ### TLS/SSL setting
85
+ # Set this to false to skip verifying SSL certificate when calling API from https server.
86
+ # Default to true.
87
+ #
88
+ # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
89
+ #
90
+ # @return [true, false]
91
+ attr_accessor :verify_ssl
92
+
93
+ ### TLS/SSL setting
94
+ # Set this to false to skip verifying SSL host name
95
+ # Default to true.
96
+ #
97
+ # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
98
+ #
99
+ # @return [true, false]
100
+ attr_accessor :verify_ssl_host
101
+
102
+ ### TLS/SSL setting
103
+ # Set this to customize the certificate file to verify the peer.
104
+ #
105
+ # @return [String] the path to the certificate file
106
+ #
107
+ # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:
108
+ # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
109
+ attr_accessor :ssl_ca_cert
110
+
111
+ ### TLS/SSL setting
112
+ # Client certificate file (for client certificate)
113
+ attr_accessor :cert_file
114
+
115
+ ### TLS/SSL setting
116
+ # Client private key file (for client certificate)
117
+ attr_accessor :key_file
118
+
119
+ # Set this to customize parameters encoding of array parameter with multi collectionFormat.
120
+ # Default to nil.
121
+ #
122
+ # @see The params_encoding option of Ethon. Related source code:
123
+ # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
124
+ attr_accessor :params_encoding
125
+
126
+ attr_accessor :inject_format
127
+
128
+ attr_accessor :force_ending_format
129
+
130
+ def initialize
131
+ @scheme = 'http'
132
+ @host = 'data.boxx.ai'
133
+ @base_path = ''
134
+ @api_key = {}
135
+ @api_key_prefix = {}
136
+ @timeout = 0
137
+ @client_side_validation = true
138
+ @verify_ssl = true
139
+ @verify_ssl_host = true
140
+ @params_encoding = nil
141
+ @cert_file = nil
142
+ @key_file = nil
143
+ @debugging = false
144
+ @inject_format = false
145
+ @force_ending_format = false
146
+ @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
147
+
148
+ yield(self) if block_given?
149
+ end
150
+
151
+ # The default Configuration object.
152
+ def self.default
153
+ @@default ||= Configuration.new
154
+ end
155
+
156
+ def configure
157
+ yield(self) if block_given?
158
+ end
159
+
160
+ def scheme=(scheme)
161
+ # remove :// from scheme
162
+ @scheme = scheme.sub(/:\/\//, '')
163
+ end
164
+
165
+ def host=(host)
166
+ # remove http(s):// and anything after a slash
167
+ @host = host.sub(/https?:\/\//, '').split('/').first
168
+ end
169
+
170
+ def base_path=(base_path)
171
+ # Add leading and trailing slashes to base_path
172
+ @base_path = "/#{base_path}".gsub(/\/+/, '/')
173
+ @base_path = "" if @base_path == "/"
174
+ end
175
+
176
+ def base_url
177
+ url = "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
178
+ URI.encode(url)
179
+ end
180
+
181
+ # Gets API key (with prefix if set).
182
+ # @param [String] param_name the parameter name of API key auth
183
+ def api_key_with_prefix(param_name)
184
+ if @api_key_prefix[param_name]
185
+ "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
186
+ else
187
+ @api_key[param_name]
188
+ end
189
+ end
190
+
191
+ # Gets Basic Auth token string
192
+ def basic_auth_token
193
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
194
+ end
195
+
196
+ # Returns Auth Settings hash for api client.
197
+ def auth_settings
198
+ {
199
+ }
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,224 @@
1
+ =begin
2
+ #Upload and Delete Data API
3
+
4
+ #Boxx.ai's customer, product and interaction data ingestion sdk
5
+
6
+ OpenAPI spec version: 1.4.1
7
+ Contact: aida@boxx.ai
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module BoxxClient
16
+ # parameters required while making request for delete all documents.
17
+ class DeleteAll
18
+ # client id of the user
19
+ attr_accessor :client_id
20
+
21
+ # access token of the user
22
+ attr_accessor :access_token
23
+
24
+ # Type of data. Possible values are ‘customer’, ‘product’ and ‘transaction’
25
+ attr_accessor :data_type
26
+
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'client_id' => :'client_id',
32
+ :'access_token' => :'access_token',
33
+ :'data_type' => :'data_type'
34
+ }
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.swagger_types
39
+ {
40
+ :'client_id' => :'String',
41
+ :'access_token' => :'String',
42
+ :'data_type' => :'String'
43
+ }
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ return unless attributes.is_a?(Hash)
50
+
51
+ # convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
53
+
54
+ if attributes.has_key?(:'client_id')
55
+ self.client_id = attributes[:'client_id']
56
+ end
57
+
58
+ if attributes.has_key?(:'access_token')
59
+ self.access_token = attributes[:'access_token']
60
+ end
61
+
62
+ if attributes.has_key?(:'data_type')
63
+ self.data_type = attributes[:'data_type']
64
+ end
65
+
66
+ end
67
+
68
+ # Show invalid properties with the reasons. Usually used together with valid?
69
+ # @return Array for valid properties with the reasons
70
+ def list_invalid_properties
71
+ invalid_properties = Array.new
72
+ if @client_id.nil?
73
+ invalid_properties.push("invalid value for 'client_id', client_id cannot be nil.")
74
+ end
75
+
76
+ if @access_token.nil?
77
+ invalid_properties.push("invalid value for 'access_token', access_token cannot be nil.")
78
+ end
79
+
80
+ if @data_type.nil?
81
+ invalid_properties.push("invalid value for 'data_type', data_type cannot be nil.")
82
+ end
83
+
84
+ return invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ return false if @client_id.nil?
91
+ return false if @access_token.nil?
92
+ return false if @data_type.nil?
93
+ return true
94
+ end
95
+
96
+ # Checks equality by comparing each attribute.
97
+ # @param [Object] Object to be compared
98
+ def ==(o)
99
+ return true if self.equal?(o)
100
+ self.class == o.class &&
101
+ client_id == o.client_id &&
102
+ access_token == o.access_token &&
103
+ data_type == o.data_type
104
+ end
105
+
106
+ # @see the `==` method
107
+ # @param [Object] Object to be compared
108
+ def eql?(o)
109
+ self == o
110
+ end
111
+
112
+ # Calculates hash code according to all attributes.
113
+ # @return [Fixnum] Hash code
114
+ def hash
115
+ [client_id, access_token, data_type].hash
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.swagger_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :DateTime
145
+ DateTime.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :BOOLEAN
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ temp_model = BoxxClient.const_get(type).new
176
+ temp_model.build_from_hash(value)
177
+ end
178
+ end
179
+
180
+ # Returns the string representation of the object
181
+ # @return [String] String presentation of the object
182
+ def to_s
183
+ to_hash.to_s
184
+ end
185
+
186
+ # to_body is an alias to to_hash (backward compatibility)
187
+ # @return [Hash] Returns the object in the form of hash
188
+ def to_body
189
+ to_hash
190
+ end
191
+
192
+ # Returns the object in the form of hash
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_hash
195
+ hash = {}
196
+ self.class.attribute_map.each_pair do |attr, param|
197
+ value = self.send(attr)
198
+ next if value.nil?
199
+ hash[param] = _to_hash(value)
200
+ end
201
+ hash
202
+ end
203
+
204
+ # Outputs non-array value in the form of hash
205
+ # For object, use to_hash. Otherwise, just return the value
206
+ # @param [Object] value Any valid value
207
+ # @return [Hash] Returns the value in the form of hash
208
+ def _to_hash(value)
209
+ if value.is_a?(Array)
210
+ value.compact.map{ |v| _to_hash(v) }
211
+ elsif value.is_a?(Hash)
212
+ {}.tap do |hash|
213
+ value.each { |k, v| hash[k] = _to_hash(v) }
214
+ end
215
+ elsif value.respond_to? :to_hash
216
+ value.to_hash
217
+ else
218
+ value
219
+ end
220
+ end
221
+
222
+ end
223
+
224
+ end