mailroute 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.md +69 -7
- data/lib/mailroute/models/email_account.rb +12 -0
- data/lib/mailroute/version.rb +1 -1
- data/mailroute.gemspec +1 -1
- data/spec/lib/mailroute/models/email_account_spec.rb +27 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_doesn_t_exist/creating_an_email_account_by_email_address/should_raise_ResourceNotFound_error.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/domain/.yml +106 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/localpart/.yml +72 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/should_be_created_successfully.yml +72 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_admins/should_return_a_list_of_its_admins.yml +1 -1
- metadata +25 -17
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Mailroute [![Build Status](https://secure.travis-ci.org/MailRoute/mailroute_ruby.png)](http://travis-ci.org/MailRoute/mailroute_ruby)
|
2
2
|
|
3
|
-
|
3
|
+
Mailroute is a Ruby client for [mailroute.net](http://mailroute.net).
|
4
|
+
|
5
|
+
## Requirements
|
6
|
+
|
7
|
+
Ruby 1.8.7, 1.9.3 or 2.0.0.
|
4
8
|
|
5
9
|
## Installation
|
6
10
|
|
@@ -12,23 +16,82 @@ And then execute:
|
|
12
16
|
|
13
17
|
$ bundle
|
14
18
|
|
15
|
-
Or install it yourself as:
|
19
|
+
Or install it by yourself as:
|
16
20
|
|
17
21
|
$ gem install mailroute
|
18
22
|
|
19
23
|
## Usage
|
20
24
|
|
25
|
+
# Configuration
|
26
|
+
|
21
27
|
Mailroute.configure(
|
22
28
|
:username => '<username here>',
|
23
29
|
:apikey => '0d1a...a33'
|
24
30
|
)
|
25
31
|
|
26
|
-
# Make sure that Mailroute configured properly
|
27
|
-
Mailroute.check_connection #=> true
|
28
32
|
|
29
|
-
|
33
|
+
# Reseller
|
34
|
+
|
35
|
+
# A list of resellers
|
36
|
+
Mailroute::Reseller.list #=> [...]
|
37
|
+
|
38
|
+
# You can specify limit and offset
|
39
|
+
Mailroute::Reseller.list.offset(20).limit(30) #=> [...]
|
40
|
+
|
41
|
+
reseller = Mailroute::Reseller.get(12) #=> Reseller<...>
|
42
|
+
reseller.name #=> "John Doe"
|
43
|
+
reseller.name = 'Jane Doe'
|
44
|
+
reseller.save
|
45
|
+
|
46
|
+
Mailroute::Reseller.get(12).name #=> 'Jane Doe'
|
47
|
+
|
48
|
+
reseller.delete
|
49
|
+
|
50
|
+
Mailroute::Reseller.get(12) #=> ActiveResource::ResourceNotFound
|
51
|
+
|
52
|
+
reseller = Mailroute::Reseller.get(name: 'John Smith') #=> Reseller<...>
|
53
|
+
|
54
|
+
resellers = Mailroute::Reseller.search('Smith') #=> [Reseller<...>, ...]
|
55
|
+
resellers.include?(reseller) #=> true
|
56
|
+
|
57
|
+
Mailroute::Reseller.filter(name: 'Smith') #=> [...]
|
58
|
+
Mailroute::Reseller.filter(name__exact: 'John Smith') #=> [...]
|
59
|
+
Mailroute::Reseller.filter(name__starts_with: 'Jo') #=> [...]
|
60
|
+
|
61
|
+
Mailroute::Reseller.list.order_by('-name')
|
62
|
+
Mailroute::Reseller.list.order_by('name')
|
63
|
+
Mailroute::Reseller.list.order_by('created_at')
|
64
|
+
|
65
|
+
new_reseller = Mailroute::Reseller.create(name: 'New Guy') #=> Reseller<...>
|
66
|
+
new_reseller.id #=> 11111
|
67
|
+
|
68
|
+
new_resellers = Mailroute::Reseller.bulk_create(
|
69
|
+
{ name: 'R2D2' },
|
70
|
+
{ name: '3PO' },
|
71
|
+
{ name: 'Luke Skywalker' }
|
72
|
+
)
|
73
|
+
new_resellers.count #=> 3
|
74
|
+
|
75
|
+
# mass deletion
|
76
|
+
# by ids:
|
77
|
+
Mailroute::Reseller.delete([10, 12, 13])
|
78
|
+
# by instances:
|
79
|
+
Mailroute::Reseller.delete(new_resellers)
|
80
|
+
|
81
|
+
# Associations:
|
82
|
+
reseller.customers #=> [Customer<...>, ...]
|
83
|
+
reseller.admins #=> [Admin<...>, ...]
|
84
|
+
reseller.contacts #=> [ResellerContact<...>, ...]
|
85
|
+
reseller.branding_info #=> BrandingInfo<...>
|
30
86
|
|
31
|
-
|
87
|
+
send_welcome = true
|
88
|
+
reseller.create_admin('admin@example.com', send_welcome) #=> Admin<...>
|
89
|
+
reseller.delete_admin('admin@example.com')
|
90
|
+
reseller.create_contact(params) #=> ResellerContact<...>
|
91
|
+
reseller.create_customer(params) #=> Customer<...>
|
92
|
+
|
93
|
+
# All list operations allow chaining
|
94
|
+
Mailroute::Reseller.limit(10).offset(30).filter(name: 'Fox').order('created_at') #=> [Reseller<...>, ...]
|
32
95
|
|
33
96
|
## Contributing
|
34
97
|
|
@@ -38,7 +101,6 @@ Or install it yourself as:
|
|
38
101
|
4. Push to the branch (`git push origin my-new-feature`)
|
39
102
|
5. Create new Pull Request
|
40
103
|
|
41
|
-
|
42
104
|
## TODO
|
43
105
|
|
44
106
|
1. clean up vcr cassettes
|
@@ -48,6 +48,18 @@ module Mailroute
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
51
|
+
|
52
|
+
alias_method :create_by_attributes, :create
|
53
|
+
def create(*args)
|
54
|
+
if args.size == 1 && args.first.is_a?(String)
|
55
|
+
localpart, domain_name = *args.first.split('@')
|
56
|
+
domain = Domain.get(domain_name)
|
57
|
+
raise ActiveResource::ResourceNotFound, "Domain with name #{domain_name} not found" unless domain
|
58
|
+
create_by_attributes(:localpart => localpart, :domain => domain, :create_opt => 'generate_pwd')
|
59
|
+
else
|
60
|
+
create_by_attributes(*args)
|
61
|
+
end
|
62
|
+
end
|
51
63
|
end
|
52
64
|
end
|
53
65
|
end
|
data/lib/mailroute/version.rb
CHANGED
data/mailroute.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["Viktar.Basharymau@gmail.com"]
|
11
11
|
spec.description = %q{MailRoute API}
|
12
12
|
spec.summary = %q{An API for http://mailroute.net}
|
13
|
-
spec.homepage = "http://github.com/
|
13
|
+
spec.homepage = "http://github.com/MailRoute/mailroute"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -36,6 +36,33 @@ describe Mailroute::EmailAccount, :vcr => true do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe '#create' do
|
40
|
+
context 'when domain exists' do
|
41
|
+
let(:existing_domain) { Mailroute::Domain.get('example.com') }
|
42
|
+
|
43
|
+
context 'creating an email account by email address' do
|
44
|
+
subject(:email_account) { Mailroute::EmailAccount.create('admin@example.com') }
|
45
|
+
|
46
|
+
it 'should be created successfully' do
|
47
|
+
email_account.id.should_not be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
its(:domain) { should == existing_domain }
|
51
|
+
its(:localpart) { should == 'admin' }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context "when domain doesn't exist" do
|
56
|
+
context 'creating an email account by email address' do
|
57
|
+
let(:email_account) { Mailroute::EmailAccount.create('admin@do.not.exist.example.net') }
|
58
|
+
|
59
|
+
it 'should raise ResourceNotFound error' do
|
60
|
+
expect { email_account }.to raise_error ActiveResource::ResourceNotFound
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
39
66
|
it 'should be possible to create, read, update and delete email accounts' do
|
40
67
|
domain = Mailroute::Domain.get(4555)
|
41
68
|
new_account = nil
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
recorded_with: VCR 2.4.0
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
|
+
method: get
|
6
|
+
uri: https://admin-dev.mailroute.net/api/v1/domain/?name=do.not.exist.example.net
|
7
|
+
body:
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
Authorization:
|
11
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
12
|
+
Accept:
|
13
|
+
- application/json
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Connection:
|
20
|
+
- keep-alive
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Cache-Control:
|
24
|
+
- no-cache
|
25
|
+
Vary:
|
26
|
+
- Accept, Cookie
|
27
|
+
- Accept-Encoding
|
28
|
+
Content-Type:
|
29
|
+
- application/json; charset=utf-8
|
30
|
+
Date:
|
31
|
+
- Tue, 30 Apr 2013 19:58:09 GMT
|
32
|
+
Server:
|
33
|
+
- nginx/1.2.6
|
34
|
+
body:
|
35
|
+
string: "{\"meta\": {\"limit\": 20, \"next\": null, \"offset\": 0, \"previous\": null, \"total_count\": 0}, \"objects\": []}"
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 30 Apr 2013 19:58:09 GMT
|
@@ -0,0 +1,106 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://admin-dev.mailroute.net/api/v1/domain/?name=example.com
|
6
|
+
body:
|
7
|
+
string: ""
|
8
|
+
headers:
|
9
|
+
Accept:
|
10
|
+
- application/json
|
11
|
+
Authorization:
|
12
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
13
|
+
response:
|
14
|
+
status:
|
15
|
+
code: 200
|
16
|
+
message: OK
|
17
|
+
headers:
|
18
|
+
Cache-Control:
|
19
|
+
- no-cache
|
20
|
+
Content-Type:
|
21
|
+
- application/json; charset=utf-8
|
22
|
+
Connection:
|
23
|
+
- keep-alive
|
24
|
+
Date:
|
25
|
+
- Tue, 30 Apr 2013 19:37:33 GMT
|
26
|
+
Server:
|
27
|
+
- nginx/1.2.6
|
28
|
+
Transfer-Encoding:
|
29
|
+
- chunked
|
30
|
+
Vary:
|
31
|
+
- Accept, Cookie
|
32
|
+
- Accept-Encoding
|
33
|
+
body:
|
34
|
+
string: "{\"meta\": {\"limit\": 20, \"next\": null, \"offset\": 0, \"previous\": null, \"total_count\": 1}, \"objects\": [{\"absolute_url\": \"/domain/8372/\", \"active\": true, \"created_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"customer\": \"/api/v1/customer/11371/\", \"deliveryport\": 25, \"hold_email\": false, \"id\": 8372, \"name\": \"example.com\", \"notification_tasks\": [\"/api/v1/notification_domain_task/16919/\"], \"outbound_enabled\": false, \"policy\": \"/api/v1/policy_domain/16390/\", \"resource_uri\": \"/api/v1/domain/8372/\", \"updated_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"userlist_complete\": false}]}"
|
35
|
+
http_version:
|
36
|
+
recorded_at: Tue, 30 Apr 2013 19:37:34 GMT
|
37
|
+
- request:
|
38
|
+
method: post
|
39
|
+
uri: https://admin-dev.mailroute.net/api/v1/email_account/
|
40
|
+
body:
|
41
|
+
string: "{\"localpart\":\"admin\",\"domain\":\"/api/v1/domain/8372/\",\"create_opt\":\"generate_pwd\"}"
|
42
|
+
headers:
|
43
|
+
Content-Type:
|
44
|
+
- application/json
|
45
|
+
Accept:
|
46
|
+
- "*/*"
|
47
|
+
Authorization:
|
48
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
49
|
+
response:
|
50
|
+
status:
|
51
|
+
code: 201
|
52
|
+
message: CREATED
|
53
|
+
headers:
|
54
|
+
Content-Type:
|
55
|
+
- application/json; charset=utf-8
|
56
|
+
Connection:
|
57
|
+
- keep-alive
|
58
|
+
Location:
|
59
|
+
- https://admin-dev.mailroute.net/api/v1/email_account/7716/
|
60
|
+
Date:
|
61
|
+
- Tue, 30 Apr 2013 19:37:35 GMT
|
62
|
+
Server:
|
63
|
+
- nginx/1.2.6
|
64
|
+
Transfer-Encoding:
|
65
|
+
- chunked
|
66
|
+
Vary:
|
67
|
+
- Accept, Cookie
|
68
|
+
body:
|
69
|
+
string: "{\"absolute_url\": \"/user/7716/\", \"aliases\": \"\", \"change_pwd\": null, \"contact\": null, \"create_opt\": null, \"created_at\": \"Tue, 30 Apr 2013 12:37:35 -0700\", \"domain\": \"/api/v1/domain/8372/\", \"domain_name\": \"example.com\", \"id\": 7716, \"localpart\": \"admin\", \"notification_tasks\": [\"/api/v1/notification_account_task/16922/\"], \"policy\": \"/api/v1/policy_user/16393/\", \"priority\": 8, \"resource_uri\": \"/api/v1/email_account/7716/\", \"updated_at\": \"Tue, 30 Apr 2013 12:37:35 -0700\", \"use_domain_notifications\": true}"
|
70
|
+
http_version:
|
71
|
+
recorded_at: Tue, 30 Apr 2013 19:37:35 GMT
|
72
|
+
- request:
|
73
|
+
method: get
|
74
|
+
uri: https://admin-dev.mailroute.net/api/v1/domain/?name=example.com
|
75
|
+
body:
|
76
|
+
string: ""
|
77
|
+
headers:
|
78
|
+
Accept:
|
79
|
+
- application/json
|
80
|
+
Authorization:
|
81
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
82
|
+
response:
|
83
|
+
status:
|
84
|
+
code: 200
|
85
|
+
message: OK
|
86
|
+
headers:
|
87
|
+
Cache-Control:
|
88
|
+
- no-cache
|
89
|
+
Content-Type:
|
90
|
+
- application/json; charset=utf-8
|
91
|
+
Connection:
|
92
|
+
- keep-alive
|
93
|
+
Date:
|
94
|
+
- Tue, 30 Apr 2013 19:37:37 GMT
|
95
|
+
Server:
|
96
|
+
- nginx/1.2.6
|
97
|
+
Transfer-Encoding:
|
98
|
+
- chunked
|
99
|
+
Vary:
|
100
|
+
- Accept, Cookie
|
101
|
+
- Accept-Encoding
|
102
|
+
body:
|
103
|
+
string: "{\"meta\": {\"limit\": 20, \"next\": null, \"offset\": 0, \"previous\": null, \"total_count\": 1}, \"objects\": [{\"absolute_url\": \"/domain/8372/\", \"active\": true, \"created_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"customer\": \"/api/v1/customer/11371/\", \"deliveryport\": 25, \"hold_email\": false, \"id\": 8372, \"name\": \"example.com\", \"notification_tasks\": [\"/api/v1/notification_domain_task/16919/\"], \"outbound_enabled\": false, \"policy\": \"/api/v1/policy_domain/16390/\", \"resource_uri\": \"/api/v1/domain/8372/\", \"updated_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"userlist_complete\": false}]}"
|
104
|
+
http_version:
|
105
|
+
recorded_at: Tue, 30 Apr 2013 19:37:37 GMT
|
106
|
+
recorded_with: VCR 2.4.0
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
recorded_with: VCR 2.4.0
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
|
+
method: get
|
6
|
+
uri: https://admin-dev.mailroute.net/api/v1/domain/?name=example.com
|
7
|
+
body:
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Authorization:
|
13
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Connection:
|
20
|
+
- keep-alive
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Server:
|
24
|
+
- nginx/1.2.6
|
25
|
+
Vary:
|
26
|
+
- Accept, Cookie
|
27
|
+
- Accept-Encoding
|
28
|
+
Date:
|
29
|
+
- Tue, 30 Apr 2013 19:38:43 GMT
|
30
|
+
Content-Type:
|
31
|
+
- application/json; charset=utf-8
|
32
|
+
Cache-Control:
|
33
|
+
- no-cache
|
34
|
+
body:
|
35
|
+
string: "{\"meta\": {\"limit\": 20, \"next\": null, \"offset\": 0, \"previous\": null, \"total_count\": 1}, \"objects\": [{\"absolute_url\": \"/domain/8372/\", \"active\": true, \"created_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"customer\": \"/api/v1/customer/11371/\", \"deliveryport\": 25, \"hold_email\": false, \"id\": 8372, \"name\": \"example.com\", \"notification_tasks\": [\"/api/v1/notification_domain_task/16919/\"], \"outbound_enabled\": false, \"policy\": \"/api/v1/policy_domain/16390/\", \"resource_uri\": \"/api/v1/domain/8372/\", \"updated_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"userlist_complete\": false}]}"
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 30 Apr 2013 19:38:43 GMT
|
38
|
+
- request:
|
39
|
+
method: post
|
40
|
+
uri: https://admin-dev.mailroute.net/api/v1/email_account/
|
41
|
+
body:
|
42
|
+
string: "{\"domain\":\"/api/v1/domain/8372/\",\"create_opt\":\"generate_pwd\",\"localpart\":\"admin\"}"
|
43
|
+
headers:
|
44
|
+
Accept:
|
45
|
+
- "*/*"
|
46
|
+
Authorization:
|
47
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
48
|
+
Content-Type:
|
49
|
+
- application/json
|
50
|
+
response:
|
51
|
+
status:
|
52
|
+
code: 201
|
53
|
+
message: CREATED
|
54
|
+
headers:
|
55
|
+
Connection:
|
56
|
+
- keep-alive
|
57
|
+
Transfer-Encoding:
|
58
|
+
- chunked
|
59
|
+
Server:
|
60
|
+
- nginx/1.2.6
|
61
|
+
Vary:
|
62
|
+
- Accept, Cookie
|
63
|
+
Date:
|
64
|
+
- Tue, 30 Apr 2013 19:38:45 GMT
|
65
|
+
Content-Type:
|
66
|
+
- application/json; charset=utf-8
|
67
|
+
Location:
|
68
|
+
- https://admin-dev.mailroute.net/api/v1/email_account/7717/
|
69
|
+
body:
|
70
|
+
string: "{\"absolute_url\": \"/user/7717/\", \"aliases\": \"\", \"change_pwd\": null, \"contact\": null, \"create_opt\": null, \"created_at\": \"Tue, 30 Apr 2013 12:38:45 -0700\", \"domain\": \"/api/v1/domain/8372/\", \"domain_name\": \"example.com\", \"id\": 7717, \"localpart\": \"admin\", \"notification_tasks\": [\"/api/v1/notification_account_task/16923/\"], \"policy\": \"/api/v1/policy_user/16394/\", \"priority\": 8, \"resource_uri\": \"/api/v1/email_account/7717/\", \"updated_at\": \"Tue, 30 Apr 2013 12:38:45 -0700\", \"use_domain_notifications\": true}"
|
71
|
+
http_version:
|
72
|
+
recorded_at: Tue, 30 Apr 2013 19:38:45 GMT
|
@@ -0,0 +1,72 @@
|
|
1
|
+
---
|
2
|
+
recorded_with: VCR 2.4.0
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
|
+
method: get
|
6
|
+
uri: https://admin-dev.mailroute.net/api/v1/domain/?name=example.com
|
7
|
+
body:
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
Authorization:
|
11
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
12
|
+
Accept:
|
13
|
+
- application/json
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Connection:
|
20
|
+
- keep-alive
|
21
|
+
Content-Type:
|
22
|
+
- application/json; charset=utf-8
|
23
|
+
Cache-Control:
|
24
|
+
- no-cache
|
25
|
+
Date:
|
26
|
+
- Tue, 30 Apr 2013 19:32:32 GMT
|
27
|
+
Server:
|
28
|
+
- nginx/1.2.6
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Vary:
|
32
|
+
- Accept, Cookie
|
33
|
+
- Accept-Encoding
|
34
|
+
body:
|
35
|
+
string: "{\"meta\": {\"limit\": 20, \"next\": null, \"offset\": 0, \"previous\": null, \"total_count\": 1}, \"objects\": [{\"absolute_url\": \"/domain/8372/\", \"active\": true, \"created_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"customer\": \"/api/v1/customer/11371/\", \"deliveryport\": 25, \"hold_email\": false, \"id\": 8372, \"name\": \"example.com\", \"notification_tasks\": [\"/api/v1/notification_domain_task/16919/\"], \"outbound_enabled\": false, \"policy\": \"/api/v1/policy_domain/16390/\", \"resource_uri\": \"/api/v1/domain/8372/\", \"updated_at\": \"Tue, 30 Apr 2013 12:02:15 -0700\", \"userlist_complete\": false}]}"
|
36
|
+
http_version:
|
37
|
+
recorded_at: Tue, 30 Apr 2013 19:32:34 GMT
|
38
|
+
- request:
|
39
|
+
method: post
|
40
|
+
uri: https://admin-dev.mailroute.net/api/v1/email_account/
|
41
|
+
body:
|
42
|
+
string: "{\"localpart\":\"admin\",\"create_opt\":\"generate_pwd\",\"domain\":\"/api/v1/domain/8372/\"}"
|
43
|
+
headers:
|
44
|
+
Content-Type:
|
45
|
+
- application/json
|
46
|
+
Authorization:
|
47
|
+
- ApiKey test_ruby:93ec480a01deb532ffb592ba711013e14422c4f1
|
48
|
+
Accept:
|
49
|
+
- "*/*"
|
50
|
+
response:
|
51
|
+
status:
|
52
|
+
code: 201
|
53
|
+
message: CREATED
|
54
|
+
headers:
|
55
|
+
Connection:
|
56
|
+
- keep-alive
|
57
|
+
Content-Type:
|
58
|
+
- application/json; charset=utf-8
|
59
|
+
Location:
|
60
|
+
- https://admin-dev.mailroute.net/api/v1/email_account/7715/
|
61
|
+
Date:
|
62
|
+
- Tue, 30 Apr 2013 19:32:36 GMT
|
63
|
+
Server:
|
64
|
+
- nginx/1.2.6
|
65
|
+
Transfer-Encoding:
|
66
|
+
- chunked
|
67
|
+
Vary:
|
68
|
+
- Accept, Cookie
|
69
|
+
body:
|
70
|
+
string: "{\"absolute_url\": \"/user/7715/\", \"aliases\": \"\", \"change_pwd\": null, \"contact\": null, \"create_opt\": null, \"created_at\": \"Tue, 30 Apr 2013 12:32:35 -0700\", \"domain\": \"/api/v1/domain/8372/\", \"domain_name\": \"example.com\", \"id\": 7715, \"localpart\": \"admin\", \"notification_tasks\": [\"/api/v1/notification_account_task/16921/\"], \"policy\": \"/api/v1/policy_user/16392/\", \"priority\": 8, \"resource_uri\": \"/api/v1/email_account/7715/\", \"updated_at\": \"Tue, 30 Apr 2013 12:32:36 -0700\", \"use_domain_notifications\": true}"
|
71
|
+
http_version:
|
72
|
+
recorded_at: Tue, 30 Apr 2013 19:32:36 GMT
|
@@ -34,7 +34,7 @@ http_interactions:
|
|
34
34
|
Transfer-Encoding:
|
35
35
|
- chunked
|
36
36
|
body:
|
37
|
-
string: "{\"error_message\": \"No Reseller matches the given query.\", \"traceback\": \"Traceback (most recent call last):\\n\\n File \\\"/home/mroute/venv/
|
37
|
+
string: "{\"error_message\": \"No Reseller matches the given query.\", \"traceback\": \"Traceback (most recent call last):\\n\\n File \\\"/home/mroute/venv/ci/lib/python2.7/site-packages/tastypie/resources.py\\\", line 202, in wrapper\\n response = callback(request, *args, **kwargs)\\n\\n File \\\"/home/mroute/venv/ci/lib/python2.7/site-packages/tastypie/resources.py\\\", line 441, in dispatch_list\\n return self.dispatch('list', request, **kwargs)\\n\\n File \\\"apps/amavisd/api/resources.py\\\", line 1245, in dispatch\\n self._extract_owner(kwargs, request)\\n\\n File \\\"apps/amavisd/api/resources.py\\\", line 1238, in _extract_owner\\n self.owner_obj = get_object_or_404(Reseller, pk=self.obj_id)\\n\\n File \\\"/home/mroute/venv/ci/lib/python2.7/site-packages/django/shortcuts/__init__.py\\\", line 115, in get_object_or_404\\n raise Http404('No %s matches the given query.' % queryset.model._meta.object_name)\\n\\nHttp404: No Reseller matches the given query.\\n\"}"
|
38
38
|
http_version:
|
39
39
|
recorded_at: Mon, 11 Mar 2013 20:09:24 GMT
|
40
40
|
- request:
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailroute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Viktar Basharymau
|
@@ -15,11 +15,10 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-04-
|
18
|
+
date: 2013-04-30 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rest-client
|
22
|
-
prerelease: false
|
23
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
@@ -29,11 +28,11 @@ dependencies:
|
|
29
28
|
segments:
|
30
29
|
- 0
|
31
30
|
version: "0"
|
31
|
+
prerelease: false
|
32
32
|
type: :runtime
|
33
33
|
requirement: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: json_pure
|
36
|
-
prerelease: false
|
37
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
37
|
none: false
|
39
38
|
requirements:
|
@@ -43,11 +42,11 @@ dependencies:
|
|
43
42
|
segments:
|
44
43
|
- 0
|
45
44
|
version: "0"
|
45
|
+
prerelease: false
|
46
46
|
type: :runtime
|
47
47
|
requirement: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: activeresource
|
50
|
-
prerelease: false
|
51
50
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
52
|
requirements:
|
@@ -57,11 +56,11 @@ dependencies:
|
|
57
56
|
segments:
|
58
57
|
- 0
|
59
58
|
version: "0"
|
59
|
+
prerelease: false
|
60
60
|
type: :runtime
|
61
61
|
requirement: *id003
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: bundler
|
64
|
-
prerelease: false
|
65
64
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
66
65
|
none: false
|
67
66
|
requirements:
|
@@ -71,11 +70,11 @@ dependencies:
|
|
71
70
|
segments:
|
72
71
|
- 0
|
73
72
|
version: "0"
|
73
|
+
prerelease: false
|
74
74
|
type: :development
|
75
75
|
requirement: *id004
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: rake
|
78
|
-
prerelease: false
|
79
78
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
80
79
|
none: false
|
81
80
|
requirements:
|
@@ -85,11 +84,11 @@ dependencies:
|
|
85
84
|
segments:
|
86
85
|
- 0
|
87
86
|
version: "0"
|
87
|
+
prerelease: false
|
88
88
|
type: :development
|
89
89
|
requirement: *id005
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
91
|
name: guard-rspec
|
92
|
-
prerelease: false
|
93
92
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
94
93
|
none: false
|
95
94
|
requirements:
|
@@ -99,11 +98,11 @@ dependencies:
|
|
99
98
|
segments:
|
100
99
|
- 0
|
101
100
|
version: "0"
|
101
|
+
prerelease: false
|
102
102
|
type: :development
|
103
103
|
requirement: *id006
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: rb-inotify
|
106
|
-
prerelease: false
|
107
106
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
108
107
|
none: false
|
109
108
|
requirements:
|
@@ -113,11 +112,11 @@ dependencies:
|
|
113
112
|
segments:
|
114
113
|
- 0
|
115
114
|
version: "0"
|
115
|
+
prerelease: false
|
116
116
|
type: :development
|
117
117
|
requirement: *id007
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
119
|
name: rb-fsevent
|
120
|
-
prerelease: false
|
121
120
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
122
121
|
none: false
|
123
122
|
requirements:
|
@@ -127,11 +126,11 @@ dependencies:
|
|
127
126
|
segments:
|
128
127
|
- 0
|
129
128
|
version: "0"
|
129
|
+
prerelease: false
|
130
130
|
type: :development
|
131
131
|
requirement: *id008
|
132
132
|
- !ruby/object:Gem::Dependency
|
133
133
|
name: vcr
|
134
|
-
prerelease: false
|
135
134
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
136
135
|
none: false
|
137
136
|
requirements:
|
@@ -141,11 +140,11 @@ dependencies:
|
|
141
140
|
segments:
|
142
141
|
- 0
|
143
142
|
version: "0"
|
143
|
+
prerelease: false
|
144
144
|
type: :development
|
145
145
|
requirement: *id009
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: webmock
|
148
|
-
prerelease: false
|
149
148
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
150
149
|
none: false
|
151
150
|
requirements:
|
@@ -155,11 +154,11 @@ dependencies:
|
|
155
154
|
segments:
|
156
155
|
- 0
|
157
156
|
version: "0"
|
157
|
+
prerelease: false
|
158
158
|
type: :development
|
159
159
|
requirement: *id010
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
161
|
name: awesome_print
|
162
|
-
prerelease: false
|
163
162
|
version_requirements: &id011 !ruby/object:Gem::Requirement
|
164
163
|
none: false
|
165
164
|
requirements:
|
@@ -169,6 +168,7 @@ dependencies:
|
|
169
168
|
segments:
|
170
169
|
- 0
|
171
170
|
version: "0"
|
171
|
+
prerelease: false
|
172
172
|
type: :development
|
173
173
|
requirement: *id011
|
174
174
|
description: MailRoute API
|
@@ -297,6 +297,10 @@ files:
|
|
297
297
|
- spec/vcr_cassettes/Mailroute_Domain/move_to_customer/should_move_domain_to_another_customer.yml
|
298
298
|
- spec/vcr_cassettes/Mailroute_DomainAlias/should_be_possible_to_create_read_update_and_delete_domain_aliases.yml
|
299
299
|
- spec/vcr_cassettes/Mailroute_DomainContact/CRUD/should_create_read_update_and_delete_domain_contacts.yml
|
300
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_doesn_t_exist/creating_an_email_account_by_email_address/should_raise_ResourceNotFound_error.yml
|
301
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/domain/.yml
|
302
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/localpart/.yml
|
303
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/should_be_created_successfully.yml
|
300
304
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_id/should_return_an_account.yml
|
301
305
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain/should_return_an_account.yml
|
302
306
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain_id/should_return_an_account.yml
|
@@ -370,7 +374,7 @@ files:
|
|
370
374
|
- spec/vcr_cassettes/Valid_Reseller.yml
|
371
375
|
- spec/vcr_cassettes/Valid_Reseller_.yml
|
372
376
|
- spec/vcr_cassettes/Valid_Reseller_with_Branding_Info.yml
|
373
|
-
homepage: http://github.com/
|
377
|
+
homepage: http://github.com/MailRoute/mailroute
|
374
378
|
licenses:
|
375
379
|
- MIT
|
376
380
|
post_install_message:
|
@@ -399,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
403
|
requirements: []
|
400
404
|
|
401
405
|
rubyforge_project:
|
402
|
-
rubygems_version: 1.8.
|
406
|
+
rubygems_version: 1.8.25
|
403
407
|
signing_key:
|
404
408
|
specification_version: 3
|
405
409
|
summary: An API for http://mailroute.net
|
@@ -478,6 +482,10 @@ test_files:
|
|
478
482
|
- spec/vcr_cassettes/Mailroute_Domain/move_to_customer/should_move_domain_to_another_customer.yml
|
479
483
|
- spec/vcr_cassettes/Mailroute_DomainAlias/should_be_possible_to_create_read_update_and_delete_domain_aliases.yml
|
480
484
|
- spec/vcr_cassettes/Mailroute_DomainContact/CRUD/should_create_read_update_and_delete_domain_contacts.yml
|
485
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_doesn_t_exist/creating_an_email_account_by_email_address/should_raise_ResourceNotFound_error.yml
|
486
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/domain/.yml
|
487
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/localpart/.yml
|
488
|
+
- spec/vcr_cassettes/Mailroute_EmailAccount/_create/when_domain_exists/creating_an_email_account_by_email_address/should_be_created_successfully.yml
|
481
489
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_id/should_return_an_account.yml
|
482
490
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain/should_return_an_account.yml
|
483
491
|
- spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain_id/should_return_an_account.yml
|