mxhero-api 0.1.34 → 0.1.35

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWM3MjU1MTU3MjhmMjA4MzJiNDJiYjZjN2IzMTEzNjU0NzJiYmRlOQ==
4
+ ZWI4NmM5MzljMmYxYTk4MDdkMzhmMWMxMjZkNzU0ZjIxNzRjNjI2NA==
5
5
  data.tar.gz: !binary |-
6
- MmM2MzU1OTU3MDI4MjE3OWI4Y2RiZGRiOGI0YzgzYTdiN2I5ODM1OA==
6
+ OGNhOTFlODQzMjJmNTgzNGFhNDc1ZTNlYzAwYjRjNDQ0ZjA4OTk3Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODYwOWUwMzlhZTZjZjI0NDhiZDljN2Y2ODQ2MDY1OGI5YTY5MTYxMzI4NTA3
10
- MzY2ZDY1OGE1MjdiNmNmM2FjNTY0MDRiYzMyZjBmNGVjMWU3NzI0ZThhNTEy
11
- ZDVkMDRkNzBjYWE3MWRiNDZjOTI0MDE0MDJjOGE1OTVjYjc2MTA=
9
+ NTQ4NWU1NzkwZDZiMmE3ZTE1YjdlY2ZkMDVlN2NhOGM0MWFjZGVlNWRiMzYz
10
+ YzYwZjJhYjBiMDUxNTlhYzIxMjA1NjUyZmJiN2Q0OGY5M2Q0ZThkZmI1NmQy
11
+ MmVkMGMxOWIyNGUxNzM1MmM4YmQ5MjUxMWMwNzNiNjlkMzRiODc=
12
12
  data.tar.gz: !binary |-
13
- YWRiYTRlZjVlYTQxZTM5NTRmNTk4MGM2YWVmNjg5MDY2ZWU2ZjgwMmU2NWQ1
14
- ZTRmYzk2NTYzNTMyYjBlOGM3YTQyY2QyYTI5ZThjZTUxMGMyMDE5NTAxY2Uy
15
- NjczNjE0NGU5MTQ2NmE1Mzg2NWE3YmYxMmNiNmZiODgyMDEyMGU=
13
+ M2ViNzJkYzEwZWU3MGNmOTk3OTA3NDljMzQwN2UxNjEzZTk3NDMzZTI1OTI5
14
+ MTMzNThjY2JmYWI5N2Y1ZjdjMmU5ODk4YWVjZjUyNjc2MmMyNDU0ZjZkMGFj
15
+ Y2VlNzU4YWNmYTc1NTA2NDA0NWUxYzQzYjI2YWQ1MzRiYTM1YzU=
data/README.md CHANGED
@@ -6,19 +6,19 @@ A ruby client to interact with the MxHero API
6
6
 
7
7
  gem install mxhero-api
8
8
 
9
- or in your Gemfile:
9
+ or in your Gemfile:
10
10
 
11
11
  gem 'mxhero-api'
12
12
 
13
13
  ## Example of uses
14
14
 
15
- Some examples, **complete documentation in the [API client documentation](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html)**
15
+ Some examples, **complete documentation in the [API client documentation](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html)**
16
16
 
17
17
  ### Instanciate a client
18
18
 
19
19
  client = MxHero::API::Client.new(username: 'api username', password: 'api password', api_url: 'http://api-url-example.mxhero.com/api')
20
20
 
21
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#initialize-instance_method)
21
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#initialize-instance_method)
22
22
 
23
23
  ### Retrieve all the domains
24
24
 
@@ -27,21 +27,21 @@ Some examples, **complete documentation in the [API client documentation](http:/
27
27
 
28
28
  # Return a hash, example:
29
29
  #
30
- # { :elements => [
30
+ # { :elements => [
31
31
  # { :domain=>"tesla.com", :server=>"tesla.com", :creationDate=>1369837819000, :updatedDate=>1369837819000, :aliases=>nil, :ldap=>nil }
32
- # ],
33
- # :totalElements=>1,
34
- # :totalPages=>1,
32
+ # ],
33
+ # :totalElements=>1,
34
+ # :totalPages=>1,
35
35
  # :actualPage=>1
36
- # }
36
+ # }
37
37
 
38
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#domains-instance_method)
38
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#domains-instance_method)
39
39
 
40
40
  ### Retrieve all rules for one domain
41
41
 
42
- rules = client.rules_for_domain('tesla.com')
42
+ rules = client.rules_for_domain('tesla.com')
43
43
 
44
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#rule_for_domain-instance_method)
44
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#rule_for_domain-instance_method)
45
45
 
46
46
  ### Create a rule for one domain
47
47
 
@@ -60,24 +60,24 @@ Some examples, **complete documentation in the [API client documentation](http:/
60
60
  ],
61
61
  component: 'org.mxhero.feature.disclaimer'
62
62
  }
63
-
63
+
64
64
  # Create a rule for one domain
65
65
  client.create_rule_for_domain('test.com', rule)
66
66
 
67
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#create_rule_for_domain-instance_method)
67
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#create_rule_for_domain-instance_method)
68
68
 
69
69
  ### Update a rule
70
70
 
71
71
  client.update_rule(rule)
72
72
 
73
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#update_rule-instance_method)
73
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#update_rule-instance_method)
74
74
 
75
75
  ### find a rule for one domain
76
76
 
77
77
  client.domain_rule('tesla.com', 12)
78
78
 
79
- [See more](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html#domain_rule-instance_method)
79
+ [See more](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html#domain_rule-instance_method)
80
80
 
81
81
  ## Complete documentation
82
82
 
83
- Complete documentation in the [API client documentation](http://www.rubydoc.info/github/mxhero/mxhero-api/MxHero/API/Client.html)
83
+ Complete documentation in the [API client documentation](http://www.rubydoc.info/gems/mxhero-api/MxHero/API/Client.html)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.34
1
+ 0.1.35
@@ -123,6 +123,52 @@ module MxHero::API
123
123
  end
124
124
 
125
125
 
126
+ # Create a new domain base on domain_obj hash
127
+ #
128
+ # @param domain_obj The domain to be created. For example:
129
+ # [Hash] with detailed domain
130
+ # * :domain [String]
131
+ # * :server [String]
132
+ # * :inbound [Boolean]
133
+ # * :outbound [Boolean]
134
+ # * :features [Array<Hash>]
135
+ # * :cos [Hash]
136
+ # * :source [String] (gapps|on_premise|ms_agent|office365)
137
+ # * :aliases [Array<String>]
138
+ # * :ldap [Hash]
139
+ #
140
+ # @return [Boolean] true if was successfully created
141
+ #
142
+ def create_domain(domain_obj = {})
143
+ response = call(:post, domains_url, domain_obj.to_json, throw_exception: false)
144
+ response.status == 201
145
+ end
146
+
147
+ # Create a new domain base on domain_obj hash
148
+ #
149
+ # @param domain_obj The domain to be created. For example:
150
+ # [Hash] with detailed domain
151
+ # * :domain [String]
152
+ # * :server [String]
153
+ # * :inbound [Boolean]
154
+ # * :outbound [Boolean]
155
+ # * :features [Array<Hash>]
156
+ # * :cos [Hash]
157
+ # * :source [String] (gapps|on_premise|ms_agent|office365)
158
+ # * :aliases [Array<String>]
159
+ # * :ldap [Hash]
160
+ #
161
+ # @return [Boolean] true if was successfully created
162
+ #
163
+ def add_feature(domain_name, feature_component)
164
+ feature = {
165
+ feature: feature_component,
166
+ maxRulesAmount: 1
167
+ }
168
+ response = call(:post, features_url(domain_name), feature.to_json, throw_exception: false)
169
+ response.status == 200
170
+ end
171
+
126
172
  # Retrive the domain information
127
173
  #
128
174
  # @param name The domain name or id. For example: 'mydomain.com'
@@ -526,6 +572,10 @@ module MxHero::API
526
572
  rules_for_domain_url(domain) + "/#{id}"
527
573
  end
528
574
 
575
+ def features_url(domain)
576
+ domain_by_id_url(domain) + "/features"
577
+ end
578
+
529
579
  def account_properties_url(domain, account)
530
580
  accounts_by_domain_url(domain) + "/#{account}/properties"
531
581
  end
@@ -1,22 +1,22 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: mxhero-api 0.1.34 ruby lib
2
+ # stub: mxhero-api 0.1.35 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "mxhero-api"
6
- s.version = "0.1.34"
6
+ s.version = "0.1.35"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.authors = ["Maximiliano Dello Russo", "Juan Pablo Royo", "mxHero"]
10
- s.date = "2014-07-22"
10
+ s.date = "2014-11-06"
11
11
  s.description = "A gem to provide easy access to the API of MxHero platform (http://www.mxhero.com/)"
12
12
  s.email = ["maxidr@mxhero.com", "juanpablo.royo@gmail.com", "mxhero@mxhero.com"]
13
- s.files = [".gitignore", ".ruby-gemset", ".ruby-version", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "VERSION", "lib/communication.rb", "lib/directories.rb", "lib/dto.rb", "lib/groups.rb", "lib/mxhero-api.rb", "lib/resource.rb", "lib/resources/account.rb", "lib/resources/domain.rb", "lib/resources/group.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/all_groups.yml", "test/fixtures/api/create_directory.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/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/refresh_directory.yml", "test/fixtures/api/remove_account_from_group_twice.yml", "test/fixtures/api/remove_inexistente_account_from_group.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/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/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_feature.rb", "test/test_groups.rb", "test/test_mxhero_api.rb", "test/test_mxhero_api_response.rb", "test/test_resource.rb"]
13
+ s.files = [".gitignore", ".ruby-gemset", ".ruby-version", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "VERSION", "lib/communication.rb", "lib/directories.rb", "lib/dto.rb", "lib/groups.rb", "lib/mxhero-api.rb", "lib/resource.rb", "lib/resources/account.rb", "lib/resources/domain.rb", "lib/resources/group.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/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/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/refresh_directory.yml", "test/fixtures/api/remove_account_from_group_twice.yml", "test/fixtures/api/remove_inexistente_account_from_group.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/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/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_feature.rb", "test/test_groups.rb", "test/test_mxhero_api.rb", "test/test_mxhero_api_response.rb", "test/test_resource.rb"]
14
14
  s.homepage = "http://github.com/mxhero/mxhero-api"
15
15
  s.licenses = ["GPL-3"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubygems_version = "2.1.9"
18
18
  s.summary = "A MxHero API client for ruby"
19
- s.test_files = ["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/all_groups.yml", "test/fixtures/api/create_directory.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/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/refresh_directory.yml", "test/fixtures/api/remove_account_from_group_twice.yml", "test/fixtures/api/remove_inexistente_account_from_group.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/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/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_feature.rb", "test/test_groups.rb", "test/test_mxhero_api.rb", "test/test_mxhero_api_response.rb", "test/test_resource.rb"]
19
+ s.test_files = ["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/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/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/refresh_directory.yml", "test/fixtures/api/remove_account_from_group_twice.yml", "test/fixtures/api/remove_inexistente_account_from_group.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/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/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_feature.rb", "test/test_groups.rb", "test/test_mxhero_api.rb", "test/test_mxhero_api_response.rb", "test/test_resource.rb"]
20
20
 
21
21
  if s.respond_to? :specification_version then
22
22
  s.specification_version = 4
@@ -0,0 +1,78 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/domains/newdomain_create.com//features
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"feature":"com.mxhero.application.mail2cloud.archive","maxRulesAmount":1}'
9
+ headers:
10
+ Accept:
11
+ - application/json
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Basic YWRtaW46cGFzc3dvcmQ=
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VGh1LCAwNiBOb3YgMjAxNCAxNTo1NDoyOSBHTVQ=
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: Thu, 06 Nov 2014 15:54:28 GMT
39
+ - request:
40
+ method: post
41
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/domains/newdomain_create.com//features
42
+ body:
43
+ encoding: UTF-8
44
+ string: ! '{"feature":"com.mxhero.application.mail2cloud.archive","maxRulesAmount":1}'
45
+ headers:
46
+ Accept:
47
+ - application/json
48
+ Content-Type:
49
+ - application/json
50
+ Authorization:
51
+ - Basic YWRtaW46cGFzc3dvcmQ=
52
+ response:
53
+ status:
54
+ code: 500
55
+ message: !binary |-
56
+ SW50ZXJuYWwgU2VydmVyIEVycm9y
57
+ headers:
58
+ !binary "RGF0ZQ==":
59
+ - !binary |-
60
+ VGh1LCAwNiBOb3YgMjAxNCAxNTo1NDoyOSBHTVQ=
61
+ !binary "U2VydmVy":
62
+ - !binary |-
63
+ QXBhY2hlLzIuMi4xNCAoVWJ1bnR1KQ==
64
+ !binary "Q29ubmVjdGlvbg==":
65
+ - !binary |-
66
+ Y2xvc2U=
67
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
68
+ - !binary |-
69
+ Y2h1bmtlZA==
70
+ !binary "Q29udGVudC1UeXBl":
71
+ - !binary |-
72
+ YXBwbGljYXRpb24vanNvbg==
73
+ body:
74
+ encoding: US-ASCII
75
+ string: ! '{"status":500,"code":500,"developerMessage":"domain.feature.already.exists","moreInfoUrl":"mailto:support@mxhero.com"}'
76
+ http_version:
77
+ recorded_at: Thu, 06 Nov 2014 15:54:29 GMT
78
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,83 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/domains
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"domain":"newdomain_create.com","inbound":false,"outbound":false,"aliases":["newdomain_create.com"],"source":"on_premise","cos":{"cos":"free"}}'
9
+ headers:
10
+ Accept:
11
+ - application/json
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Basic YWRtaW46cGFzc3dvcmQ=
16
+ response:
17
+ status:
18
+ code: 201
19
+ message: !binary |-
20
+ Q3JlYXRlZA==
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VGh1LCAwNiBOb3YgMjAxNCAxNTo0NDoxNSBHTVQ=
25
+ !binary "U2VydmVy":
26
+ - !binary |-
27
+ QXBhY2hlLzIuMi4xNCAoVWJ1bnR1KQ==
28
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
29
+ - !binary |-
30
+ Y2h1bmtlZA==
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbg==
34
+ body:
35
+ encoding: US-ASCII
36
+ string: ! '{"domain":"newdomain_create.com","server":null,"relayServer":null,"inbound":false,"outbound":false,"creationDate":1415288655000,"updatedDate":1415288655000,"aliases":["newdomain_create.com"],"ldap":null,"features":[],"cos":{"cos":"free","edition":null},"cosLastChange":null,"allowedTransportAgents":null,"allowedIpMasks":null,"source":"on_premise","metadata":null}'
37
+ http_version:
38
+ recorded_at: Thu, 06 Nov 2014 15:44:15 GMT
39
+ - request:
40
+ method: post
41
+ uri: http://admin:password@test.mxhero.com/webapi/api/v1/domains
42
+ body:
43
+ encoding: UTF-8
44
+ string: ! '{"domain":"newdomain_create.com","inbound":false,"outbound":false,"aliases":["newdomain_create.com"],"source":"on_premise","cos":{"cos":"free"}}'
45
+ headers:
46
+ Accept:
47
+ - application/json
48
+ Content-Type:
49
+ - application/json
50
+ Authorization:
51
+ - Basic YWRtaW46cGFzc3dvcmQ=
52
+ response:
53
+ status:
54
+ code: 409
55
+ message: !binary |-
56
+ Q29uZmxpY3Q=
57
+ headers:
58
+ !binary "RGF0ZQ==":
59
+ - !binary |-
60
+ VGh1LCAwNiBOb3YgMjAxNCAxNTo0NDoxNSBHTVQ=
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":409,"code":409,"message":"PreparedStatementCallback; SQL
73
+ [INSERT INTO `mxhero`.`domain` (`domain`,`server`,`creation`,`updated`,`inbound`,`outbound`,`relay_server`,`cos`,`allowed_ip_masks`,`allowed_transport_agents`,`metadata`,`source`)
74
+ VALUES(?,?,?,?,?,?,?,?,?,?,?,?);]; Duplicate entry ''newdomain_create.com''
75
+ for key ''PRIMARY''; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
76
+ Duplicate entry ''newdomain_create.com'' for key ''PRIMARY''","developerMessage":"PreparedStatementCallback;
77
+ SQL [INSERT INTO `mxhero`.`domain` (`domain`,`server`,`creation`,`updated`,`inbound`,`outbound`,`relay_server`,`cos`,`allowed_ip_masks`,`allowed_transport_agents`,`metadata`,`source`)
78
+ VALUES(?,?,?,?,?,?,?,?,?,?,?,?);]; Duplicate entry ''newdomain_create.com''
79
+ for key ''PRIMARY''; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
80
+ Duplicate entry ''newdomain_create.com'' for key ''PRIMARY''","moreInfoUrl":"mailto:support@mxhero.com"}'
81
+ http_version:
82
+ recorded_at: Thu, 06 Nov 2014 15:44:15 GMT
83
+ recorded_with: VCR 2.5.0
@@ -75,6 +75,31 @@ class MxHeroAPITest < MiniTest::Unit::TestCase
75
75
  end
76
76
  end
77
77
 
78
+ def test_create_domain
79
+ VCR.use_cassette('create_domain') do
80
+ domain = {
81
+ domain: 'newdomain_create.com',
82
+ inbound: false,
83
+ outbound: false,
84
+ aliases: [ 'newdomain_create.com' ],
85
+ source: 'on_premise',
86
+ cos: {
87
+ cos: 'free'
88
+ }
89
+ }
90
+ assert @api.create_domain(domain)
91
+ assert !@api.create_domain(domain)
92
+
93
+ end
94
+ end
95
+
96
+ def test_add_feature
97
+ VCR.use_cassette('add_feature') do
98
+ assert @api.add_feature('newdomain_create.com','com.mxhero.application.mail2cloud.archive')
99
+ assert !@api.add_feature('newdomain_create.com','com.mxhero.application.mail2cloud.archive')
100
+ end
101
+ end
102
+
78
103
  def test_accounts_by_domain
79
104
  VCR.use_cassette('accounts_from_domain') do
80
105
  response = @api.accounts_by_domain(domain)
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: 0.1.34
4
+ version: 0.1.35
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: 2014-07-22 00:00:00.000000000 Z
13
+ date: 2014-11-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: vcr
@@ -91,8 +91,10 @@ files:
91
91
  - test/fixtures/api/accounts_without_group.yml
92
92
  - test/fixtures/api/add_an_inexistent_account_to_group.yml
93
93
  - test/fixtures/api/add_and_remove_account.yml
94
+ - test/fixtures/api/add_feature.yml
94
95
  - test/fixtures/api/all_groups.yml
95
96
  - test/fixtures/api/create_directory.yml
97
+ - test/fixtures/api/create_domain.yml
96
98
  - test/fixtures/api/create_rule_for_domain.yml
97
99
  - test/fixtures/api/create_user.yml
98
100
  - test/fixtures/api/delete_directory.yml
@@ -168,8 +170,10 @@ test_files:
168
170
  - test/fixtures/api/accounts_without_group.yml
169
171
  - test/fixtures/api/add_an_inexistent_account_to_group.yml
170
172
  - test/fixtures/api/add_and_remove_account.yml
173
+ - test/fixtures/api/add_feature.yml
171
174
  - test/fixtures/api/all_groups.yml
172
175
  - test/fixtures/api/create_directory.yml
176
+ - test/fixtures/api/create_domain.yml
173
177
  - test/fixtures/api/create_rule_for_domain.yml
174
178
  - test/fixtures/api/create_user.yml
175
179
  - test/fixtures/api/delete_directory.yml