mxhero-api 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98333e3bb84f6ffadd098d5786d3ed69f25f8da4
4
- data.tar.gz: 57e0eefff6ee290646606bd24fd0c664932c21e4
3
+ metadata.gz: 778d526d0854e4c50736d0cd53130bc22740f432
4
+ data.tar.gz: b1c6fc56151b095b0dc65fad92fef36abebf92f6
5
5
  SHA512:
6
- metadata.gz: d7750ef9ad95224f185224cb8545fd499548ba294c8a080b7052c179935fd9ceb6eedcc1599a92b3b5a6e5d62c01eb20661413006e6ff8176a5a09016d850604
7
- data.tar.gz: 91197d516036befbfdddc77044184f294f58f479334b19ccb45b6d9d442d69df382f08d0fb1e34fdbf7e0ca320d1f6bc0932e9bd03e1e0b9999b58df271e0e33
6
+ metadata.gz: 3c18ab9158b5d6128f31822d9dc288c9d7e64c677cb336f2bf858931639fa64be148638a9396fef63fdf371edbdc37197446627bb44732c25ca817e1db2da626
7
+ data.tar.gz: 9ed2618db43e48c59fa36f67cc844534a2a19d55db6bcea96935c287ec528b61dc4089cbc3f97ddaa9dc64fba0d13a1abdb03f779dc6cecefa924e5342aceddf
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.8
1
+ 1.2.9
@@ -19,7 +19,7 @@ module MxHero
19
19
  @client ||= HTTPClient.new(:force_basic_auth => true)
20
20
  end
21
21
  @client.set_auth(url, @username, @password)
22
- response = @client.request(method, url, nil, body, headers)
22
+ response = @client.request(method, url, nil, body, headers(more_options))
23
23
  raise "Unauthorized" if response.status == 401
24
24
  unless more_options[:throw_exception] == false
25
25
  raise "An error ocurred when try to communicate with the API\nError: #{response.inspect}" if (500..600).include?(response.status)
@@ -28,10 +28,12 @@ module MxHero
28
28
  end
29
29
 
30
30
  # Default headers
31
- def headers
32
- {
33
- 'Accept' => 'application/json',
34
- 'Content-Type' => 'application/json',
31
+ def headers(options = {})
32
+ accept = options.fetch(:accept, 'application/json')
33
+ content_type = options.fetch(:content_type, 'application/json')
34
+ return {
35
+ 'Accept' => accept,
36
+ 'Content-Type' => content_type,
35
37
  "Authorization" => "Basic " + ::Base64.encode64(@username + ':' + @password).gsub("\n",''),
36
38
  }.merge(@as_user ? { "X-MxHero-As-User" => @as_user } : {})
37
39
  end
@@ -505,8 +505,8 @@ module MxHero::API
505
505
  # Validate if the an user and password match
506
506
  #
507
507
  def valid_user_credentials?(user, password)
508
- validate_user_credential_url = user_url(user) + "/password/#{CGI::escape(password)}"
509
- response = call(:get, validate_user_credential_url)
508
+ validate_user_credential_url = user_url(user) + "/password/check"
509
+ response = call(:post, validate_user_credential_url, password, { content_type: 'text/plain' })
510
510
  response.status == 204
511
511
  end
512
512
 
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: mxhero-api 1.2.8 ruby lib
2
+ # stub: mxhero-api 1.2.9 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "mxhero-api"
6
- s.version = "1.2.8"
6
+ s.version = "1.2.9"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["Maximiliano Dello Russo", "Juan Pablo Royo", "mxHero"]
11
- s.date = "2020-05-27"
11
+ s.date = "2020-06-09"
12
12
  s.description = "A gem to provide easy access to the API of MxHero platform (http://www.mxhero.com/)"
13
13
  s.email = ["maxidr@mxhero.com", "juanpablo.royo@gmail.com", "mxhero@mxhero.com"]
14
14
  s.files = [".gitignore", ".ruby-gemset", ".ruby-version", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "VERSION", "lib/communication.rb", "lib/directories.rb", "lib/dto.rb", "lib/email-sync.rb", "lib/groups.rb", "lib/mxhero-api.rb", "lib/pst-converter.rb", "lib/resource.rb", "lib/resources/account.rb", "lib/resources/domain.rb", "lib/resources/group.rb", "lib/response.rb", "lib/urls.rb", "mxhero-api.gemspec", "test/fixtures/api/account_properties.yml", "test/fixtures/api/account_properties_not_found.yml", "test/fixtures/api/accounts.yml", "test/fixtures/api/accounts_filtered.yml", "test/fixtures/api/accounts_from_domain.yml", "test/fixtures/api/accounts_from_domain_paginated.yml", "test/fixtures/api/accounts_without_group.yml", "test/fixtures/api/add_an_inexistent_account_to_group.yml", "test/fixtures/api/add_and_remove_account.yml", "test/fixtures/api/add_feature.yml", "test/fixtures/api/all_groups.yml", "test/fixtures/api/associate_user_domain.yml", "test/fixtures/api/create_directory.yml", "test/fixtures/api/create_domain.yml", "test/fixtures/api/create_rule_for_domain.yml", "test/fixtures/api/create_user.yml", "test/fixtures/api/delete_directory.yml", "test/fixtures/api/delete_group.yml", "test/fixtures/api/delete_rule.yml", "test/fixtures/api/domain_by_id.yml", "test/fixtures/api/domain_by_id_not_found.yml", "test/fixtures/api/domain_rule.yml", "test/fixtures/api/domains.yml", "test/fixtures/api/emailsync_delete.yml", "test/fixtures/api/emailsync_fetch_all.yml", "test/fixtures/api/emailsync_task_by_id.yml", "test/fixtures/api/fetch_directory.yml", "test/fixtures/api/fetch_user.yml", "test/fixtures/api/ldap_info.yml", "test/fixtures/api/move_to_trial.yml", "test/fixtures/api/pst_inactive_tasks.yml", "test/fixtures/api/refresh_directory.yml", "test/fixtures/api/remove_account_from_group_twice.yml", "test/fixtures/api/remove_inexistente_account_from_group.yml", "test/fixtures/api/rule_status.yml", "test/fixtures/api/rules_for_domain.yml", "test/fixtures/api/rules_for_domain_by_component.yml", "test/fixtures/api/save_group.yml", "test/fixtures/api/search_accounts_starts_with_a.yml", "test/fixtures/api/search_accounts_starts_with_ab.yml", "test/fixtures/api/system_properties.yml", "test/fixtures/api/system_properties_create.yml", "test/fixtures/api/system_properties_element.yml", "test/fixtures/api/test_domain.yml", "test/fixtures/api/update_account_properties.yml", "test/fixtures/api/update_accounts_group_scope.yml", "test/fixtures/api/update_accounts_properties_scope.yml", "test/fixtures/api/update_directory.yml", "test/fixtures/api/update_rule.yml", "test/fixtures/api/update_user.yml", "test/fixtures/api/user_domains.yml", "test/fixtures/api/users_for_domain.yml", "test/fixtures/api/validate_user_credential.yml", "test/fixtures/domain.rb", "test/helper.rb", "test/test_directories.rb", "test/test_domain.rb", "test/test_dto.rb", "test/test_emailsync.rb", "test/test_feature.rb", "test/test_groups.rb", "test/test_mxhero_api.rb", "test/test_mxhero_api_response.rb", "test/test_pst-converter.rb", "test/test_resource.rb"]
@@ -1,111 +1,194 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/admin/password/password
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - application/json
12
- Content-Type:
13
- - application/json
14
- Authorization:
15
- - Basic YWRtaW46cGFzc3dvcmQ=
16
- response:
17
- status:
18
- code: 204
19
- message: !binary |-
20
- Tm8gQ29udGVudA==
21
- headers:
22
- !binary "RGF0ZQ==":
23
- - !binary |-
24
- V2VkLCAyNiBGZWIgMjAxNCAxODo1MjowMyBHTVQ=
25
- !binary "U2VydmVy":
26
- - !binary |-
27
- QXBhY2hlLzIuMi4xNCAoVWJ1bnR1KQ==
28
- !binary "Q29udGVudC1MZW5ndGg=":
29
- - !binary |-
30
- MA==
31
- !binary "Q29udGVudC1UeXBl":
32
- - !binary |-
33
- dGV4dC9wbGFpbg==
34
- body:
35
- encoding: US-ASCII
36
- string: ''
37
- http_version:
38
- recorded_at: Wed, 26 Feb 2014 18:52:03 GMT
39
- - request:
40
- method: get
41
- uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/admin/password/wrong
42
- body:
43
- encoding: US-ASCII
44
- string: ''
45
- headers:
46
- Accept:
47
- - application/json
48
- Content-Type:
49
- - application/json
50
- Authorization:
51
- - Basic YWRtaW46cGFzc3dvcmQ=
52
- response:
53
- status:
54
- code: 404
55
- message: !binary |-
56
- Tm90IEZvdW5k
57
- headers:
58
- !binary "RGF0ZQ==":
59
- - !binary |-
60
- V2VkLCAyNiBGZWIgMjAxNCAxODo1MjowMyBHTVQ=
61
- !binary "U2VydmVy":
62
- - !binary |-
63
- QXBhY2hlLzIuMi4xNCAoVWJ1bnR1KQ==
64
- !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
65
- - !binary |-
66
- Y2h1bmtlZA==
67
- !binary "Q29udGVudC1UeXBl":
68
- - !binary |-
69
- YXBwbGljYXRpb24vanNvbg==
70
- body:
71
- encoding: US-ASCII
72
- string: ! '{"status":404,"code":404,"message":"user.not.found.or.invalid.password","developerMessage":"user.not.found.or.invalid.password","moreInfoUrl":"mailto:support@mxhero.com"}'
73
- http_version:
74
- recorded_at: Wed, 26 Feb 2014 18:52:17 GMT
75
- - request:
76
- method: get
77
- uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/inexistent.user/password/xxx
78
- body:
79
- encoding: US-ASCII
80
- string: ''
81
- headers:
82
- Accept:
83
- - application/json
84
- Content-Type:
85
- - application/json
86
- Authorization:
87
- - Basic YWRtaW46cGFzc3dvcmQ=
88
- response:
89
- status:
90
- code: 404
91
- message: !binary |-
92
- Tm90IEZvdW5k
93
- headers:
94
- !binary "RGF0ZQ==":
95
- - !binary |-
96
- V2VkLCAyNiBGZWIgMjAxNCAxODo1MjoxNyBHTVQ=
97
- !binary "U2VydmVy":
98
- - !binary |-
99
- QXBhY2hlLzIuMi4xNCAoVWJ1bnR1KQ==
100
- !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
101
- - !binary |-
102
- Y2h1bmtlZA==
103
- !binary "Q29udGVudC1UeXBl":
104
- - !binary |-
105
- YXBwbGljYXRpb24vanNvbg==
106
- body:
107
- encoding: US-ASCII
108
- string: ! '{"status":404,"code":404,"message":"user.not.found.or.invalid.password","developerMessage":"user.not.found.or.invalid.password","moreInfoUrl":"mailto:support@mxhero.com"}'
109
- http_version:
110
- recorded_at: Wed, 26 Feb 2014 18:52:17 GMT
111
- recorded_with: VCR 2.5.0
3
+ - request:
4
+ method: post
5
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/test@mxhero.com/password/check
6
+ body:
7
+ encoding: UTF-8
8
+ string: xxx1234
9
+ headers:
10
+ User-Agent:
11
+ - HTTPClient/1.0 (2.7.1, ruby 2.3.0 (2015-12-25))
12
+ Accept:
13
+ - application/json
14
+ Date:
15
+ - Tue, 09 Jun 2020 18:10:59 GMT
16
+ Content-Type:
17
+ - text/plain
18
+ X-Mxhero-As-User:
19
+ - tester@mxhero.com
20
+ Authorization:
21
+ - Basic YWRtaW46cGFzc3dvcmQ=
22
+ response:
23
+ status:
24
+ code: 204
25
+ message:
26
+ headers:
27
+ Server:
28
+ - nginx/1.17.10
29
+ Date:
30
+ - Tue, 09 Jun 2020 18:10:59 GMT
31
+ Connection:
32
+ - keep-alive
33
+ Set-Cookie:
34
+ - JSESSIONID=A45FB13F6416E2F7704C5F5839F8BF0F; Path=/webapi; HttpOnly
35
+ X-Application-Context:
36
+ - application:dev
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Xss-Protection:
40
+ - 1; mode=block
41
+ Cache-Control:
42
+ - no-cache, no-store, max-age=0, must-revalidate
43
+ Pragma:
44
+ - no-cache
45
+ Expires:
46
+ - "0"
47
+ X-Frame-Options:
48
+ - DENY
49
+ Access-Control-Allow-Origin:
50
+ - "*"
51
+ Access-Control-Allow-Credentials:
52
+ - "true"
53
+ Access-Control-Allow-Methods:
54
+ - GET, PUT, POST, DELETE, PATCH, OPTIONS
55
+ Access-Control-Allow-Headers:
56
+ - DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-authorization-storage
57
+ body:
58
+ encoding: UTF-8
59
+ string: ""
60
+ http_version:
61
+ recorded_at: Tue, 09 Jun 2020 18:10:59 GMT
62
+ - request:
63
+ method: post
64
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/admin/password/check
65
+ body:
66
+ encoding: UTF-8
67
+ string: wrong
68
+ headers:
69
+ User-Agent:
70
+ - HTTPClient/1.0 (2.7.1, ruby 2.3.0 (2015-12-25))
71
+ Accept:
72
+ - application/json
73
+ Date:
74
+ - Tue, 09 Jun 2020 18:10:59 GMT
75
+ Content-Type:
76
+ - text/plain
77
+ X-Mxhero-As-User:
78
+ - tester@mxhero.com
79
+ Cookie:
80
+ - JSESSIONID=A45FB13F6416E2F7704C5F5839F8BF0F
81
+ Authorization:
82
+ - Basic YWRtaW46cGFzc3dvcmQ=
83
+ response:
84
+ status:
85
+ code: 404
86
+ message:
87
+ headers:
88
+ Server:
89
+ - nginx/1.17.10
90
+ Date:
91
+ - Tue, 09 Jun 2020 18:11:00 GMT
92
+ Content-Type:
93
+ - application/json;charset=UTF-8
94
+ Transfer-Encoding:
95
+ - chunked
96
+ Connection:
97
+ - keep-alive
98
+ Vary:
99
+ - Accept-Encoding
100
+ Set-Cookie:
101
+ - JSESSIONID=1210F2BCAA52EEE46A2E99A296CE1410; Path=/webapi; HttpOnly
102
+ X-Application-Context:
103
+ - application:dev
104
+ X-Content-Type-Options:
105
+ - nosniff
106
+ X-Xss-Protection:
107
+ - 1; mode=block
108
+ Cache-Control:
109
+ - no-cache, no-store, max-age=0, must-revalidate
110
+ Pragma:
111
+ - no-cache
112
+ Expires:
113
+ - "0"
114
+ X-Frame-Options:
115
+ - DENY
116
+ Access-Control-Allow-Origin:
117
+ - "*"
118
+ Access-Control-Allow-Credentials:
119
+ - "true"
120
+ Access-Control-Allow-Methods:
121
+ - GET, PUT, POST, DELETE, PATCH, OPTIONS
122
+ Access-Control-Allow-Headers:
123
+ - DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-authorization-storage
124
+ body:
125
+ encoding: UTF-8
126
+ string: '{"timestamp":1591726260165,"status":404,"error":"user.not.found.or.invalid.password","message":"user.not.found.or.invalid.password","path":"/webapi/api/v1/users/admin/password/check"}'
127
+ http_version:
128
+ recorded_at: Tue, 09 Jun 2020 18:11:00 GMT
129
+ - request:
130
+ method: post
131
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/users/inexistent.user/password/check
132
+ body:
133
+ encoding: UTF-8
134
+ string: xxx
135
+ headers:
136
+ User-Agent:
137
+ - HTTPClient/1.0 (2.7.1, ruby 2.3.0 (2015-12-25))
138
+ Accept:
139
+ - application/json
140
+ Date:
141
+ - Tue, 09 Jun 2020 18:11:00 GMT
142
+ Content-Type:
143
+ - text/plain
144
+ X-Mxhero-As-User:
145
+ - tester@mxhero.com
146
+ Cookie:
147
+ - JSESSIONID=1210F2BCAA52EEE46A2E99A296CE1410
148
+ Authorization:
149
+ - Basic YWRtaW46cGFzc3dvcmQ=
150
+ response:
151
+ status:
152
+ code: 404
153
+ message:
154
+ headers:
155
+ Server:
156
+ - nginx/1.17.10
157
+ Date:
158
+ - Tue, 09 Jun 2020 18:11:00 GMT
159
+ Content-Type:
160
+ - application/json;charset=UTF-8
161
+ Transfer-Encoding:
162
+ - chunked
163
+ Connection:
164
+ - keep-alive
165
+ Vary:
166
+ - Accept-Encoding
167
+ X-Application-Context:
168
+ - application:dev
169
+ X-Content-Type-Options:
170
+ - nosniff
171
+ X-Xss-Protection:
172
+ - 1; mode=block
173
+ Cache-Control:
174
+ - no-cache, no-store, max-age=0, must-revalidate
175
+ Pragma:
176
+ - no-cache
177
+ Expires:
178
+ - "0"
179
+ X-Frame-Options:
180
+ - DENY
181
+ Access-Control-Allow-Origin:
182
+ - "*"
183
+ Access-Control-Allow-Credentials:
184
+ - "true"
185
+ Access-Control-Allow-Methods:
186
+ - GET, PUT, POST, DELETE, PATCH, OPTIONS
187
+ Access-Control-Allow-Headers:
188
+ - DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-authorization-storage
189
+ body:
190
+ encoding: UTF-8
191
+ string: '{"timestamp":1591726260540,"status":404,"error":"user.not.found.or.invalid.password","message":"user.not.found.or.invalid.password","path":"/webapi/api/v1/users/inexistent.user/password/check"}'
192
+ http_version:
193
+ recorded_at: Tue, 09 Jun 2020 18:11:00 GMT
194
+ recorded_with: VCR 3.0.1
@@ -24,7 +24,7 @@ class MxHeroAPITest < Minitest::Test
24
24
  rules = obtain_rules(domain)
25
25
  existing_rule = rules.first
26
26
  updated_rule = existing_rule.clone
27
-
27
+
28
28
  property = updated_rule[:properties].find { |property| property[:propertyKey] == 'return.message' }
29
29
  property[:propertyValue] = 'another content'
30
30
  updated_rule[:name] = updated_rule[:name] + ' more name'
@@ -36,6 +36,7 @@ class MxHeroAPITest < Minitest::Test
36
36
  end
37
37
  end
38
38
 
39
+
39
40
  =begin
40
41
  def test_rule_status
41
42
  VCR.use_cassette('rule_status') do
@@ -43,9 +44,9 @@ class MxHeroAPITest < Minitest::Test
43
44
  rules = obtain_rules(mx_domain)
44
45
  existing_rule = rules.find { |r| r[:enabled] }
45
46
  updated_rule = existing_rule.clone
46
-
47
+
47
48
  assert_equal @api.rule_status(mx_domain, updated_rule[:id], false).code, 200
48
-
49
+
49
50
  rule = @api.domain_rule(updated_rule[:domain], updated_rule[:id])
50
51
  assert !rule[:enabled]
51
52
 
@@ -54,7 +55,7 @@ class MxHeroAPITest < Minitest::Test
54
55
  rule = @api.domain_rule(updated_rule[:domain], updated_rule[:id])
55
56
  assert rule[:enabled]
56
57
  end
57
- end
58
+ end
58
59
 
59
60
  def test_domain_rule
60
61
  VCR.use_cassette('domain_rule') do
@@ -138,7 +139,7 @@ class MxHeroAPITest < Minitest::Test
138
139
  assert response.key? :elements
139
140
  account = response[:elements].first
140
141
  start_with = account[:account][0..2]
141
-
142
+
142
143
  response = @api.accounts_by_domain(domain, without_group: true, account: start_with)
143
144
  assert response[:totalElements] >= 1
144
145
  find_account = response[:elements].first
@@ -148,7 +149,7 @@ class MxHeroAPITest < Minitest::Test
148
149
 
149
150
  def test_accounts_by_domain_filtered
150
151
  VCR.use_cassette('accounts_filtered') do
151
- # The test environment have 4 accounts:
152
+ # The test environment have 4 accounts:
152
153
  # agent.smith, john.doe, test, test1, test2
153
154
  response = @api.accounts_by_domain(domain, account: 'test')
154
155
  assert_equal 3, response[:elements].count
@@ -176,7 +177,7 @@ class MxHeroAPITest < Minitest::Test
176
177
  assert response
177
178
  end
178
179
  end
179
-
180
+
180
181
  #def test_try_to_create_rule_that_alredy_exist
181
182
  # VCR.use_cassette('create_rule_alredy_exist') do
182
183
  # response = @api.create_rule(create_rule_msg)
@@ -186,10 +187,10 @@ class MxHeroAPITest < Minitest::Test
186
187
  # assert_equal "rules.already.exists.for.component", new_response.msg[:developerMessage]
187
188
  # end
188
189
  #end
189
-
190
+
190
191
  def test_create_rule_for_domain
191
192
  VCR.use_cassette('create_rule_for_domain') do
192
- delete_all_rules
193
+ delete_all_rules
193
194
  response = @api.create_rule_for_domain(domain, rule)
194
195
  assert response.code == 201
195
196
  new_response = @api.create_rule_for_domain(domain, rule)
@@ -199,20 +200,20 @@ class MxHeroAPITest < Minitest::Test
199
200
  end
200
201
 
201
202
  def test_account_properties
202
- VCR.use_cassette('account_properties') do
203
+ VCR.use_cassette('account_properties') do
203
204
  account = 'test'
204
205
  response = @api.account_properties(domain, account)
205
206
  assert_equal 200, response.code
206
207
  assert response.is_a? MxHero::API::Response
207
208
  properties = response.msg
208
- %w( email fax lastname mobile name opt1 opt2 opt3 telephone ).each do |property|
209
+ %w( email fax lastname mobile name opt1 opt2 opt3 telephone ).each do |property|
209
210
  assert properties.key? property
210
211
  end
211
212
  end
212
213
  end
213
214
 
214
215
  def test_account_propertes_not_found
215
- VCR.use_cassette('account_properties_not_found') do
216
+ VCR.use_cassette('account_properties_not_found') do
216
217
  begin
217
218
  account = 'xxxxx'
218
219
  response = @api.account_properties(domain, account)
@@ -225,12 +226,12 @@ class MxHeroAPITest < Minitest::Test
225
226
  end
226
227
 
227
228
  def test_update_account_properties
228
- VCR.use_cassette('update_account_properties') do
229
+ VCR.use_cassette('update_account_properties') do
229
230
  account = 'test'
230
231
  response = @api.account_properties(domain, account)
231
232
  properties = response.msg
232
- properties['lastname'] = ( properties['lastname'] || '' ) + ' CHANGED'
233
- properties['name'] = ( properties['name'] || '' ) + ' CHANGED'
233
+ properties['lastname'] = ( properties['lastname'] || '' ) + ' CHANGED'
234
+ properties['name'] = ( properties['name'] || '' ) + ' CHANGED'
234
235
  properties['fax'] = nil
235
236
  response = @api.update_account_properties(domain, account, properties)
236
237
  assert_equal 200, response.code
@@ -241,7 +242,7 @@ class MxHeroAPITest < Minitest::Test
241
242
  assert_equal properties['fax'], response.msg['fax']
242
243
  end
243
244
  end
244
-
245
+
245
246
  def test_update_accounts_group_scope
246
247
  VCR.use_cassette('update_accounts_group_scope') do
247
248
 
@@ -268,7 +269,7 @@ class MxHeroAPITest < Minitest::Test
268
269
  end
269
270
  end
270
271
 
271
-
272
+
272
273
 
273
274
  def test_domain
274
275
  VCR.use_cassette('test_domain') do
@@ -294,8 +295,8 @@ class MxHeroAPITest < Minitest::Test
294
295
  end.new
295
296
  end
296
297
 
297
- err = assert_raises ::RuntimeError do
298
- @api.domain('nop')
298
+ err = assert_raises ::RuntimeError do
299
+ @api.domain('nop')
299
300
  end
300
301
 
301
302
  assert_match /An error ocurred when try to fetch the domain nop/, err.message
@@ -305,8 +306,8 @@ class MxHeroAPITest < Minitest::Test
305
306
  def test_ldap_info
306
307
  VCR.use_cassette('ldap_info') do
307
308
  ldap = @api.ldap_info('mxhero.com')
308
- %w{domain directoryType addres port sslFlag user password filter
309
- base nextUpdate lastUpdate error overrideFlag
309
+ %w{domain directoryType addres port sslFlag user password filter
310
+ base nextUpdate lastUpdate error overrideFlag
310
311
  dnAuthenticate properties}.each do |field|
311
312
  assert ldap.key?(field.to_sym), "must retrieve ldap hash info with key: #{field}"
312
313
  end
@@ -342,7 +343,7 @@ class MxHeroAPITest < Minitest::Test
342
343
  response = @api.save_system_property('test.key', 'test.value')
343
344
  assert response
344
345
  assert_equal 'test.value', @api.system_properties('test.key')
345
-
346
+
346
347
  response = @api.save_system_property('test.key', 'test.value.change')
347
348
  assert response
348
349
  assert_equal 'test.value.change', @api.system_properties('test.key')
@@ -369,13 +370,13 @@ class MxHeroAPITest < Minitest::Test
369
370
  assert !users.empty?
370
371
  assert users.find { |user| user[:userName] == 'mxhero@mxhero.com' }
371
372
  end
372
- end
373
+ end
373
374
 
374
375
  def test_fetch_user
375
376
  VCR.use_cassette('fetch_user') do
376
377
  user = @api.fetch_user('mxhero@mxhero.com')
377
378
  refute user.nil?
378
-
379
+
379
380
  user = @api.fetch_user('not-exist@mxhero.com')
380
381
  assert user.nil?
381
382
  end
@@ -384,7 +385,7 @@ class MxHeroAPITest < Minitest::Test
384
385
  def test_create_user
385
386
  VCR.use_cassette('create_user') do
386
387
  user_info = {
387
- name: 'test', lastName: 'test last name',
388
+ name: 'test', lastName: 'test last name',
388
389
  notifyEmail: 'test@mxhero.com', userName: 'test@mxhero.com'
389
390
  }
390
391
  created = @api.create_user(user_info, 'mxhero.com', 'stage.mxhero.com')
@@ -426,18 +427,28 @@ class MxHeroAPITest < Minitest::Test
426
427
  end
427
428
  end
428
429
  =end
430
+
431
+ def test_valid_user_credentials
432
+ VCR.use_cassette('validate_user_credential') do
433
+ assert @api.valid_user_credentials?('test@mxhero.com', 'xxx1234')
434
+ refute @api.valid_user_credentials?('admin', 'wrong')
435
+ refute @api.valid_user_credentials?('inexistent.user', 'xxx')
436
+ end
437
+ end
438
+
439
+
429
440
  private
430
-
441
+
431
442
  def delete_all_rules
432
443
  response = @api.rules_for_domain(domain)
433
- response.msg.each do |rule|
434
- @api.delete_rule(domain, rule[:id])
444
+ response.msg.each do |rule|
445
+ @api.delete_rule(domain, rule[:id])
435
446
  end
436
447
  end
437
448
 
438
449
  def obtain_rules(domain)
439
450
  response = @api.rules_for_domain(domain)
440
- if response.msg.nil? || response.msg.empty?
451
+ if response.msg.nil? || response.msg.empty?
441
452
  created = @api.create_rule_for_domain(domain, rule)
442
453
  return [ created.msg ]
443
454
  end
@@ -475,29 +486,29 @@ class MxHeroAPITest < Minitest::Test
475
486
  end
476
487
 
477
488
  def rule
478
- { :domain => domain,
479
- :twoWays => false,
480
- :enabled => true,
481
- :name => "The rules for sales",
482
- :created => "1375998105095",
483
- :fromDirection => { :id => nil,
484
- :directionType => "domain",
485
- :freeValue => domain,
486
- :domain => domain,
487
- :account => nil, :group => nil },
488
- :toDirection => { :id => nil,
489
- :directionType => "anyone",
490
- :freeValue => "Anyone",
491
- :domain => domain,
492
- :account => nil, :group => nil},
489
+ { :domain => domain,
490
+ :twoWays => false,
491
+ :enabled => true,
492
+ :name => "The rules for sales",
493
+ :created => "1375998105095",
494
+ :fromDirection => { :id => nil,
495
+ :directionType => "domain",
496
+ :freeValue => domain,
497
+ :domain => domain,
498
+ :account => nil, :group => nil },
499
+ :toDirection => { :id => nil,
500
+ :directionType => "anyone",
501
+ :freeValue => "Anyone",
502
+ :domain => domain,
503
+ :account => nil, :group => nil},
493
504
  :properties => [
494
- { :propertyKey => "return.message",
495
- :propertyValue => "<hr /><p><em><span style=\"color:green\">Think before you print and save a tree.</span></em></p>" },
496
- { :propertyKey => "return.message.plain",
497
- :propertyValue => "\r\n----------------\r\nThink before you print and save a tree.r\n\r\n"},
498
- { :propertyKey => "interParsing",
505
+ { :propertyKey => "return.message",
506
+ :propertyValue => "<hr /><p><em><span style=\"color:green\">Think before you print and save a tree.</span></em></p>" },
507
+ { :propertyKey => "return.message.plain",
508
+ :propertyValue => "\r\n----------------\r\nThink before you print and save a tree.r\n\r\n"},
509
+ { :propertyKey => "interParsing",
499
510
  :propertyValue => true}
500
- ],
511
+ ],
501
512
  :component => "org.mxhero.feature.disclaimer" }
502
513
  end
503
514
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mxhero-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.8
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maximiliano Dello Russo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-05-27 00:00:00.000000000 Z
13
+ date: 2020-06-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: vcr