moesif_api 1.0.4 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 01462788613306a3a2bf85fb84b463c2eabfb1b0
4
- data.tar.gz: f0a23fe4992e07c93660f348e48ecdb2ab384a8c
3
+ metadata.gz: 846b5918e27ee9bd25216d757128d00bfdaf1671
4
+ data.tar.gz: 4bb93a459ee238363aeadcac54493269dcbcd7f5
5
5
  SHA512:
6
- metadata.gz: 0c2903c1628eeebf0474974ffa716396e4e49aca80135c73f3444e2c46c38c9081ed8f1e67937d2728d7db4a5393143448d3d28f9a065649695dd4836cfd6958
7
- data.tar.gz: 3d6f143b151f5bceafcdf80c5cefddd1643bd09ee5b4b349a278fdeacce768e8a53aa8052109587ee181328a007837943eb101242d8f6744a904f316146bb8a3
6
+ metadata.gz: 81b7293bda18fb4128bfabbfa1e86216b2714817f28c8b6344077d19ca432bb6ebe37010a6977af7b8cd3f759c02a04dfc971c1f99e70ac2cb8b6ba8bd52219a
7
+ data.tar.gz: 83e2d8c83908cc0a07bab2bb48683da37654ffd50d85c2a4e6dc722127dca05873ffcb78dde1358b97e8c067b7db33a1b5ce25b4ed7ff241d87873181f1b10d8
data/README.md CHANGED
@@ -1,15 +1,15 @@
1
- MoesifApi Lib for Ruby
2
- ======================
1
+ # MoesifApi Lib for Ruby
2
+
3
3
 
4
4
  [Source Code on GitHub](https://github.com/moesif/moesifapi-ruby)
5
5
 
6
- __Check out Moesif's
7
- [Ruby developer documentation](https://www.moesif.com/developer-documentation) to learn more__
6
+ [Ruby Gem](https://github.com/Moesif/moesifapi-ruby)
7
+
8
+ __Check out Moesif's [Developer Documentation](https://www.moesif.com/docs) and [Ruby API Reference](https://www.moesif.com/docs/api?ruby) to learn more__
8
9
 
9
- (Documentation access requires an active account)
10
10
 
11
- How to configure:
12
- =================
11
+ ## How to configure:
12
+
13
13
  The generated code might need to be configured with your API credentials. To do that,
14
14
  open the file "configuration.rb" and edit it's contents.
15
15
 
@@ -17,39 +17,14 @@ Alternatively, you can modify the Configuration parameters at run-time through t
17
17
  ```
18
18
  MoesifApi::Configuration.your_paramater = YOUR_VALUE
19
19
  ```
20
- Install from RubyGems
21
- =====================
22
- gem install moesif_api
23
-
24
- How to build and install manually:
25
- ==================================
26
- The generated code depends on a few Ruby gems. The references to these gems are
27
- added in the gemspec file. The easiest way to resolve the dependencies,
28
- build the gem and install it is through Rake:
29
-
30
- 1. Install Rake if not already installed: `gem install rake`
31
- 2. Install Bundler if not already installed: `gem install bundler`
32
- 3. From terminal/cmd navigate to the root directory of the SDK.
33
- 4. Invoke: `rake install`
34
-
35
- Alternatively, you can build and install the gem manually:
36
-
37
- 1. From terminal/cmd navigate to the root directory of the SDK.
38
- 2. Run the build command: `gem build moesif_api.gemspec`
39
- 3. Run the install command: `gem install ./moesif_api-1.0.0.gem`
40
-
41
- Note: You will need to have internet access for this step.
20
+ ### Install from RubyGems
42
21
 
43
- How to test:
44
- =============
45
- You can test the generated SDK and the server with automatically generated test
46
- cases as follows:
22
+ ```
23
+ gem install moesif_api
24
+ ```
47
25
 
48
- 1. From terminal/cmd navigate to the root directory of the SDK.
49
- 2. Invoke: `bundle exec rake`
26
+ ## How to use:
50
27
 
51
- How to use:
52
- ===========
53
28
  After having installed the gem, you can easily use the SDK following these steps.
54
29
 
55
30
  1. Create a "moesif_api_test.rb" file in the root directory.
@@ -58,7 +33,7 @@ After having installed the gem, you can easily use the SDK following these steps
58
33
  require 'moesif_api'
59
34
 
60
35
  api_client = MoesifApi::MoesifAPIClient.new(my_application_id)
61
- api_controller = api_client.api_controller
36
+ api_controller = api_client.api
62
37
 
63
38
  req_headers = JSON.parse('{'\
64
39
  '"Host": "api.acmeinc.com",'\
@@ -122,3 +97,52 @@ event_model.session_token = "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98
122
97
  # Perform the API call through the SDK function
123
98
  response = api_controller.create_event(event_model)
124
99
  ```
100
+
101
+ ### update user
102
+
103
+ You can also update the metadata for each user. The only required field is user_id
104
+
105
+ ```ruby
106
+ api_client = MoesifApi::MoesifAPIClient.new(my_application_id)
107
+ api_controller = api_client.api
108
+
109
+ metadata = JSON.parse('{'\
110
+ '"email": "testrubyapi@user.com",'\
111
+ '"name": "ruby api user",'\
112
+ '"custom": "testdata"'\
113
+ '}')
114
+
115
+ user_model = UserModel.new()
116
+ user_model.modified_time = Time.now.utc.iso8601 # option, default now.
117
+ user_model.user_id = "testrubyapiuser" #only required field.
118
+ user_model.metadata = metadata
119
+
120
+ response = api_controller.update_user(user_model)
121
+
122
+ ```
123
+ ## How to build and install manually:
124
+
125
+ The generated code depends on a few Ruby gems. The references to these gems are
126
+ added in the gemspec file. The easiest way to resolve the dependencies,
127
+ build the gem and install it is through Rake:
128
+
129
+ 1. Install Rake if not already installed: `gem install rake`
130
+ 2. Install Bundler if not already installed: `gem install bundler`
131
+ 3. From terminal/cmd navigate to the root directory of the SDK.
132
+ 4. Invoke: `rake install`
133
+
134
+ Alternatively, you can build and install the gem manually:
135
+
136
+ 1. From terminal/cmd navigate to the root directory of the SDK.
137
+ 2. Run the build command: `gem build moesif_api.gemspec`
138
+ 3. Run the install command: `gem install ./moesif_api-1.0.0.gem`
139
+
140
+ Note: You will need to have internet access for this step.
141
+
142
+ ## How to test:
143
+
144
+ You can test the generated SDK and the server with automatically generated test
145
+ cases as follows:
146
+
147
+ 1. From terminal/cmd navigate to the root directory of the SDK.
148
+ 2. Invoke: `bundle exec rake`
@@ -8,10 +8,13 @@ module MoesifApi
8
8
  # Your Application Id for authentication/authorization
9
9
  @application_id = 'TODO: Replace'
10
10
 
11
+ @version = '1.1.0'
12
+
11
13
  # create the getters and setters
12
14
  class << self
13
15
  attr_accessor :base_uri
14
16
  attr_accessor :application_id
17
+ attr_accessor :version
15
18
  end
16
19
  end
17
20
  end
@@ -24,7 +24,8 @@ module MoesifApi
24
24
  # prepare headers
25
25
  _headers = {
26
26
  'content-type' => 'application/json; charset=utf-8',
27
- 'X-Moesif-Application-Id' => Configuration.application_id
27
+ 'X-Moesif-Application-Id' => Configuration.application_id,
28
+ 'User-Agent' => 'moesifapi-ruby/' + Configuration.version
28
29
  }
29
30
 
30
31
  # Create the HttpRequest object for the call
@@ -62,7 +63,8 @@ module MoesifApi
62
63
  # prepare headers
63
64
  _headers = {
64
65
  'content-type' => 'application/json; charset=utf-8',
65
- 'X-Moesif-Application-Id' => Configuration.application_id
66
+ 'X-Moesif-Application-Id' => Configuration.application_id,
67
+ 'User-Agent' => 'moesifapi-ruby/' + Configuration.version
66
68
  }
67
69
 
68
70
  # Create the HttpRequest object for the call
@@ -83,5 +85,87 @@ module MoesifApi
83
85
  # Global error handling using HTTP status codes.
84
86
  validate_response(_context)
85
87
  end
88
+
89
+ # Update Data for a Single User
90
+ # @param [UserModel] body Required parameter.
91
+ # @return void response from the API call
92
+ def update_user(body)
93
+ # the base uri for api requests
94
+ _query_builder = Configuration.base_uri.dup
95
+
96
+ # prepare query string for API call
97
+ _query_builder << '/v1/users'
98
+
99
+ # validate and preprocess url
100
+ _query_url = APIHelper.clean_url _query_builder
101
+
102
+ # prepare headers
103
+ _headers = {
104
+ 'content-type' => 'application/json; charset=utf-8',
105
+ 'X-Moesif-Application-Id' => Configuration.application_id,
106
+ 'User-Agent' => 'moesifapi-ruby/' + Configuration.version
107
+ }
108
+
109
+ # Create the HttpRequest object for the call
110
+ _request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
111
+
112
+ # Call the on_before_request callback
113
+ @http_call_back.on_before_request(_request) if @http_call_back
114
+
115
+ # Invoke the API call and get the response
116
+ _response = @http_client.execute_as_string(_request)
117
+
118
+ # Wrap the request and response in an HttpContext object
119
+ _context = HttpContext.new(_request, _response)
120
+
121
+ # Call the on_after_response callback
122
+ @http_call_back.on_after_response(_context) if @http_call_back
123
+
124
+ # Global error handling using HTTP status codes.
125
+ validate_response(_context)
126
+ end
127
+
128
+
129
+ # Update Data for a Single User
130
+ # @param [list of UserModel] body Required parameter.
131
+ # @return void response from the API call
132
+ def update_users_batch(body)
133
+ # the base uri for api requests
134
+ _query_builder = Configuration.base_uri.dup
135
+
136
+ # prepare query string for API call
137
+ _query_builder << '/v1/users/batch'
138
+
139
+ # validate and preprocess url
140
+ _query_url = APIHelper.clean_url _query_builder
141
+
142
+ # prepare headers
143
+ _headers = {
144
+ 'content-type' => 'application/json; charset=utf-8',
145
+ 'X-Moesif-Application-Id' => Configuration.application_id,
146
+ 'User-Agent' => 'moesifapi-ruby/' + Configuration.version
147
+ }
148
+
149
+ # Create the HttpRequest object for the call
150
+ _request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
151
+
152
+ # Call the on_before_request callback
153
+ @http_call_back.on_before_request(_request) if @http_call_back
154
+
155
+ # Invoke the API call and get the response
156
+ _response = @http_client.execute_as_string(_request)
157
+
158
+ # Wrap the request and response in an HttpContext object
159
+ _context = HttpContext.new(_request, _response)
160
+
161
+ # Call the on_after_response callback
162
+ @http_call_back.on_after_response(_context) if @http_call_back
163
+
164
+ # Global error handling using HTTP status codes.
165
+ validate_response(_context)
166
+ end
167
+
168
+
169
+
86
170
  end
87
171
  end
@@ -23,7 +23,8 @@ module MoesifApi
23
23
  # prepare headers
24
24
  _headers = {
25
25
  'accept' => 'application/json',
26
- 'X-Moesif-Application-Id' => Configuration.application_id
26
+ 'X-Moesif-Application-Id' => Configuration.application_id,
27
+ 'User-Agent' => 'moesifapi-ruby/' + Configuration.version
27
28
  }
28
29
 
29
30
  # Create the HttpRequest object for the call
@@ -31,6 +31,10 @@ module MoesifApi
31
31
  # @return [Object]
32
32
  attr_accessor :body
33
33
 
34
+ # Transfer Encoding of body if other than JSON
35
+ # @return [String]
36
+ attr_accessor :transfer_encoding
37
+
34
38
  # A mapping from model property names to API property names
35
39
  def self.names
36
40
  if @hash.nil?
@@ -42,6 +46,7 @@ module MoesifApi
42
46
  @hash["api_version"] = "api_version"
43
47
  @hash["ip_address"] = "ip_address"
44
48
  @hash["body"] = "body"
49
+ @hash["transfer_encoding"] = "transfer_encoding"
45
50
  end
46
51
  @hash
47
52
  end
@@ -52,7 +57,8 @@ module MoesifApi
52
57
  headers = nil,
53
58
  api_version = nil,
54
59
  ip_address = nil,
55
- body = nil)
60
+ body = nil,
61
+ transfer_encoding = nil)
56
62
  @time = time
57
63
  @uri = uri
58
64
  @verb = verb
@@ -60,6 +66,7 @@ module MoesifApi
60
66
  @api_version = api_version
61
67
  @ip_address = ip_address
62
68
  @body = body
69
+ @transfer_encoding = transfer_encoding
63
70
  end
64
71
 
65
72
  # Creates an instance of the object from a hash
@@ -75,15 +82,17 @@ module MoesifApi
75
82
  api_version = hash["api_version"]
76
83
  ip_address = hash["ip_address"]
77
84
  body = hash["body"]
85
+ transfer_encoding = hash["transfer_encoding"]
78
86
 
79
87
  # Create object from extracted values
80
88
  EventRequestModel.new(time,
81
- uri,
82
- verb,
83
- headers,
84
- api_version,
85
- ip_address,
86
- body)
89
+ uri,
90
+ verb,
91
+ headers,
92
+ api_version,
93
+ ip_address,
94
+ body,
95
+ transfer_encoding)
87
96
  end
88
97
  end
89
98
  end
@@ -23,6 +23,10 @@ module MoesifApi
23
23
  # @return [String]
24
24
  attr_accessor :ip_address
25
25
 
26
+ # Transfer Encoding of body if other than JSON
27
+ # @return [String]
28
+ attr_accessor :transfer_encoding
29
+
26
30
  # A mapping from model property names to API property names
27
31
  def self.names
28
32
  if @hash.nil?
@@ -32,6 +36,7 @@ module MoesifApi
32
36
  @hash["headers"] = "headers"
33
37
  @hash["body"] = "body"
34
38
  @hash["ip_address"] = "ip_address"
39
+ @hash["transfer_encoding"] = "transfer_encoding"
35
40
  end
36
41
  @hash
37
42
  end
@@ -40,12 +45,14 @@ module MoesifApi
40
45
  status = nil,
41
46
  headers = nil,
42
47
  body = nil,
43
- ip_address = nil)
48
+ ip_address = nil,
49
+ transfer_encoding = nil)
44
50
  @time = time
45
51
  @status = status
46
52
  @headers = headers
47
53
  @body = body
48
54
  @ip_address = ip_address
55
+ @transfer_encoding = transfer_encoding
49
56
  end
50
57
 
51
58
  # Creates an instance of the object from a hash
@@ -59,13 +66,15 @@ module MoesifApi
59
66
  headers = hash["headers"]
60
67
  body = hash["body"]
61
68
  ip_address = hash["ip_address"]
69
+ transfer_encoding = hash["transfer_encoding"]
62
70
 
63
71
  # Create object from extracted values
64
72
  EventResponseModel.new(time,
65
73
  status,
66
74
  headers,
67
75
  body,
68
- ip_address)
76
+ ip_address,
77
+ transfer_encoding)
69
78
  end
70
79
  end
71
80
  end
@@ -0,0 +1,82 @@
1
+
2
+
3
+ require 'date'
4
+ module MoesifApi
5
+ class UserModel < BaseModel
6
+
7
+ # user id of the user
8
+ # @return [String]
9
+ attr_accessor :user_id
10
+
11
+ # Time when modification was made. default to current time on server side.
12
+ # @return [DateTime]
13
+ attr_accessor :modified_time
14
+
15
+ # ip address associated with user if avaialble.
16
+ # @return [String]
17
+ attr_accessor :ip_address
18
+
19
+ # session token associated with user if avaialble.
20
+ # @return [String]
21
+ attr_accessor :session_token
22
+
23
+ # Optionally tag the user with an user agent.
24
+ # @return [String]
25
+ attr_accessor :user_agent_string
26
+
27
+ # meta data
28
+ # @return [Object]
29
+ attr_accessor :metadata
30
+
31
+ # A mapping from model property names to API property names
32
+ def self.names
33
+ if @hash.nil?
34
+ @hash = {}
35
+ @hash["user_id"] = "user_id"
36
+ @hash["modified_time"] = "modified_time"
37
+ @hash["ip_address"] = "ip_address"
38
+ @hash["session_token"] = "session_token"
39
+ @hash["user_agent_string"] = "user_agent_string"
40
+ @hash["metadata"] = "metadata"
41
+ end
42
+ @hash
43
+ end
44
+
45
+ def initialize(user_id = nil,
46
+ modified_time = nil,
47
+ ip_address = nil,
48
+ session_token = nil,
49
+ user_agent_string = nil,
50
+ metadata = nil)
51
+ @user_id = user_id
52
+ @modified_time = modified_time
53
+ @ip_address = ip_address
54
+ @session_token = session_token
55
+ @user_agent_string = user_agent_string
56
+ @metadata = metadata
57
+ end
58
+
59
+ # Creates an instance of the object from a hash
60
+ def self.from_hash(hash)
61
+ if hash == nil
62
+ nil
63
+ else
64
+ # Extract variables from the hash
65
+ user_id = hash["user_id"]
66
+ modified_time = DateTime.iso8601(hash["modified_time"]) if hash["modified_time"]
67
+ ip_address = hash["ip_address"]
68
+ session_token = hash["session_token"]
69
+ user_agent_string = hash["user_agent_string"]
70
+ metadata = hash["metadata"]
71
+
72
+ # Create object from extracted values
73
+ UserModel.new(user_id,
74
+ modified_time,
75
+ ip_address,
76
+ session_token,
77
+ user_agent_string,
78
+ metadata)
79
+ end
80
+ end
81
+ end
82
+ end
data/lib/moesif_api.rb CHANGED
@@ -26,6 +26,7 @@ require_relative 'moesif_api/models/event_request_model.rb'
26
26
  require_relative 'moesif_api/models/event_model.rb'
27
27
  require_relative 'moesif_api/models/event_response_model.rb'
28
28
  require_relative 'moesif_api/models/status_model.rb'
29
+ require_relative 'moesif_api/models/user_model.rb'
29
30
 
30
31
  # Controllers
31
32
  require_relative 'moesif_api/controllers/base_controller.rb'
@@ -15,7 +15,7 @@ class ControllerTestBase < Test::Unit::TestCase
15
15
 
16
16
  # Called only once for a test class before any test has executed.
17
17
  def self.startup
18
- @@api_client = MoesifAPIClient.new("eyJhcHAiOiIzNjU6NiIsInZlciI6IjIuMCIsIm9yZyI6IjM1OTo0IiwiaWF0IjoxNDczMzc5MjAwfQ.9WOx3D357PGMxrXzFm3pV3IzJSYNsO4oRudiMI8mQ3Q")
18
+ @@api_client = MoesifAPIClient.new("eyJhcHAiOiIzMTU6MSIsInZlciI6IjIuMCIsIm9yZyI6IjM1MToxNSIsImlhdCI6MTQ4Nzk4MDgwMH0.o_hDQF_Y6-4Z3TWMBYi3bbbxHx4gCaW5ieRagJZtZew")
19
19
  @@request_timeout = 30
20
20
  @@assert_precision = 0.01
21
21
  end
@@ -1,5 +1,6 @@
1
1
 
2
2
 
3
+ require 'time'
3
4
  require_relative 'controller_test_base'
4
5
 
5
6
  class ApiControllerTests < ControllerTestBase
@@ -51,7 +52,7 @@ class ApiControllerTests < ControllerTestBase
51
52
 
52
53
 
53
54
  event_req = EventRequestModel.new()
54
- event_req.time = "2016-09-09T04:45:42.914"
55
+ event_req.time = Time.now.utc.iso8601
55
56
  event_req.uri = "https://api.acmeinc.com/items/reviews/"
56
57
  event_req.verb = "PATCH"
57
58
  event_req.api_version = "1.1.0"
@@ -60,7 +61,7 @@ class ApiControllerTests < ControllerTestBase
60
61
  event_req.body = req_body
61
62
 
62
63
  event_rsp = EventResponseModel.new()
63
- event_rsp.time = "2016-09-09T04:45:42.914"
64
+ event_rsp.time = Time.now.utc.iso8601
64
65
  event_rsp.status = 500
65
66
  event_rsp.headers = rsp_headers
66
67
  event_rsp.body = rsp_body
@@ -78,13 +79,36 @@ class ApiControllerTests < ControllerTestBase
78
79
  assert_equal(@response_catcher.response.status_code, 201)
79
80
  end
80
81
 
81
- # Add Batched Events via Ingestion API
82
- def test_add_batched_events()
82
+ # # Add Batched Events via Ingestion API
83
+ # def test_add_batched_events()
84
+ # # Parameters for the API call
85
+ # body = JSON.parse('[{ "request": { "time": "2016-09-09T04:45:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:45:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:46:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:46:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:47:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:47:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:48:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:48:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "exfzweachxjgznvKUYrxFcxv]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:49:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:49:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:50:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:50:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "recvreedfef", "session_token": "xcvkrjmcfghwuignrmcmhxdhaaezse4w]s98y18cx98q3yhwmnhcfx43f" } ]').map{|element| EventModel.from_hash(element)}
86
+ #
87
+ # # Perform the API call through the SDK function
88
+ # self.class.controller.create_events_batch(body)
89
+ #
90
+ # # Test response code
91
+ # assert_equal(@response_catcher.response.status_code, 201)
92
+ # end
93
+
94
+
95
+ # Update Single User via API
96
+ def test_update_user()
83
97
  # Parameters for the API call
84
- body = JSON.parse('[{ "request": { "time": "2016-09-09T04:45:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:45:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:46:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:46:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:47:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:47:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:48:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:48:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "exfzweachxjgznvKUYrxFcxv]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:49:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:49:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "mndug437f43", "session_token": "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f" }, { "request": { "time": "2016-09-09T04:50:42.914", "uri": "https://api.acmeinc.com/items/reviews/", "verb": "PATCH", "api_version": "1.1.0", "ip_address": "61.48.220.123", "headers": { "Host": "api.acmeinc.com", "Accept": "*/*", "Connection": "Keep-Alive", "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)", "Content-Type": "application/json", "Content-Length": "126", "Accept-Encoding": "gzip" }, "body": { "items": [ { "direction_type": 1, "discovery_id": "fwfrf", "liked": false }, { "direction_type": 2, "discovery_id": "d43d3f", "liked": true } ] } }, "response": { "time": "2016-09-09T04:50:42.914", "status": 500, "headers": { "Date": "Tue, 23 Aug 2016 23:46:49 GMT", "Vary": "Accept-Encoding", "Pragma": "no-cache", "Expires": "-1", "Content-Type": "application/json; charset=utf-8", "X-Powered-By": "ARR/3.0", "Cache-Control": "no-cache", "Arr-Disable-Session-Affinity": "true" }, "body": { "Error": "InvalidArgumentException", "Message": "Missing field field_a" } }, "user_id": "recvreedfef", "session_token": "xcvkrjmcfghwuignrmcmhxdhaaezse4w]s98y18cx98q3yhwmnhcfx43f" } ]').map{|element| EventModel.from_hash(element)}
98
+
99
+ metadata = JSON.parse('{'\
100
+ '"email": "testrubyapi@user.com",'\
101
+ '"name": "ruby api user",'\
102
+ '"custom": "testdata"'\
103
+ '}')
104
+
105
+ user_model = UserModel.new()
106
+ user_model.modified_time = Time.now.utc.iso8601
107
+ user_model.user_id = "testrubyapiuser"
108
+ user_model.metadata = metadata
85
109
 
86
110
  # Perform the API call through the SDK function
87
- self.class.controller.create_events_batch(body)
111
+ self.class.controller.update_user(user_model)
88
112
 
89
113
  # Test response code
90
114
  assert_equal(@response_catcher.response.status_code, 201)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moesif_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moesif, Inc
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-10-19 00:00:00.000000000 Z
12
+ date: 2017-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -80,6 +80,7 @@ files:
80
80
  - lib/moesif_api/models/event_request_model.rb
81
81
  - lib/moesif_api/models/event_response_model.rb
82
82
  - lib/moesif_api/models/status_model.rb
83
+ - lib/moesif_api/models/user_model.rb
83
84
  - lib/moesif_api/moesif_api_client.rb
84
85
  - test/controllers/controller_test_base.rb
85
86
  - test/controllers/test_api_controller.rb