yandex_domains 0.2.0 → 0.2.1

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: 277c32eb2b75d01b8cca09f0773b346d765db57c
4
- data.tar.gz: 310dc2aecdfd994aaf533a84b766895cd8e31f8c
3
+ metadata.gz: 127018646750b8e3798cf8c5cb800a0bd759318d
4
+ data.tar.gz: bffda633ad2060bc4f95911753a120b26f6cbb9b
5
5
  SHA512:
6
- metadata.gz: 9daf3719232de306e16a54d90f37d64e85d9d202dbbc582d30a62e1a65828e97efce6a698fa913384d64ae89394e17b2c083e1be12d5abfba071e14625ac0615
7
- data.tar.gz: e7e792b58a978042312ad074b3df0da1d5995d7d3ccc7ea517d3c3860bf8988c12cd94194371288df895dff80cf55d3f43ea1bfa490536a099d3f17df8185733
6
+ metadata.gz: 2b60972295ed099c6db31f36c8abbcc4fe0c52a7f94ffe6f9b4b38dea97b5811233f2b94f03a571419aa649af60f1e1399b86c46883846264333e1f520997309
7
+ data.tar.gz: 36d304596df2b16b874889463ad78ec0886d78da141ed5d2ee9c46b75d49e88c2da0ac703345f91036fccfa6c4a0f84cfb14c76b71d224f174563f1580ac97d1
data/Gemfile CHANGED
@@ -2,3 +2,9 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in yandex_domains.gemspec
4
4
  gemspec
5
+
6
+ group :test do
7
+ gem 'webmock'
8
+ gem 'yardstick'
9
+ end
10
+ gem 'pry'
data/README.md CHANGED
@@ -17,12 +17,16 @@ And then execute:
17
17
  Or install it yourself as:
18
18
 
19
19
  $ gem install yandex_domains
20
+
21
+ ## Documentation
22
+
23
+ http://www.rubydoc.info/github/beydogan/yandex_domains/
20
24
 
21
25
  ## Usage
22
26
 
23
- This client works for only **Administrator** access. More details about Administrator user is [here](https://tech.yandex.com/domain/doc/concepts/termin-docpage/). In order to use the client and API features, the PDD token is required. You can get a PDD token on the [token management](https://pddimp.yandex.ru/api2/admin/get_token) page by entering a domain name that has already been verified.
27
+ This client works with only **Administrator** access. More details about Administrator user is [here](https://tech.yandex.com/domain/doc/concepts/termin-docpage/). In order to use the client and API features, the PDD token is required. You can get a PDD token on the [token management](https://pddimp.yandex.ru/api2/admin/get_token) page by entering a domain name that has already been verified.
24
28
 
25
- ** Initialize a client
29
+ **Initialize a client**
26
30
  ```ruby
27
31
  client = YandexDomains::Client.new(pdd_token)
28
32
  ```
@@ -32,19 +36,21 @@ After configuring a client, you can do the followings.
32
36
 
33
37
  **Signing up a domain**
34
38
  ```ruby
35
- client.connect('google.com')
39
+ client.connect_domain('google.com')
36
40
  ```
37
41
 
38
- ** Adding a mailbox for a domain**
42
+ **Adding a mailbox for a domain**
39
43
  ```ruby
40
44
  client.add_mailbox('google.com', 'hi', 'strongpassword')
41
45
  ```
42
46
 
43
- ** Deleting a mailbox on a domain**
47
+ **Deleting a mailbox on a domain**
44
48
  ```ruby
45
49
  client.delete_mailbox('google.com', 'hi')
46
50
  ```
47
51
 
52
+ [More examples here](http://www.rubydoc.info/github/beydogan/yandex_domains/)
53
+
48
54
  ## Contributing
49
55
 
50
56
  1. Fork it ( https://github.com/beydogan/yandex_domains/fork )
@@ -0,0 +1,48 @@
1
+ module YandexDomains
2
+ module Admin
3
+ module Domain
4
+ # Used for signing up a domain.
5
+ # @param domain [String]
6
+ # @return [Hash]
7
+ # @see https://api.yandex.com.tr/kurum/doc/reference/domain-register.xml
8
+ def connect_domain(domain)
9
+ req = self.class.post("/admin/domain/register", {query: {domain: domain}})
10
+ req.parsed_response
11
+ end
12
+
13
+ # Used for getting the results of the last check, the date and time the check was performed,
14
+ # and the date and time of the next check.
15
+ # @param [String] domain
16
+ # @return [Hash] Parsed Response
17
+ # @see https://api.yandex.com.tr/kurum/doc/reference/domain-registrationstatus.xml
18
+ def registration_status(domain)
19
+ req = self.class.get("/admin/domain/registration_status", {query: {domain: domain}})
20
+ req.parsed_response
21
+ end
22
+
23
+ # Get current domain properties: the status of connecting and delegating the domain to Yandex,
24
+ # the mailbox interface language and design, and the POP and IMAP modes.
25
+ # @param [String] domain
26
+ # @return [Hash] Parsed Response
27
+ # @example Example Usage
28
+ # client.details('google.com)
29
+ # @example Return Hash
30
+ # {
31
+ # "domain": "{domain name}",
32
+ # "status": "{domain status}",
33
+ # "stage": "{service key}",
34
+ # "delegated": "{status of delegating domain to Yandex}",
35
+ # "country": "{interface language}",
36
+ # "imap_enabled": "{status of IMAP operation}",
37
+ # "pop_enabled": "{status of POP operation}",
38
+ # "default_theme": "{design theme ID}",
39
+ # "success": "{status of request execution}"
40
+ # }
41
+ # @see https://tech.yandex.com/domain/doc/reference/domain-details-docpage/
42
+ def details(domain)
43
+ req = self.class.get("/admin/domain/details", {query: {domain: domain}})
44
+ req.parsed_response
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,116 @@
1
+ module YandexDomains
2
+ module Admin
3
+ module Email
4
+ # Used for adding a mailbox for the domain.
5
+ # @param domain [String] Name of the domain.
6
+ # @param login [String] The email address of the mailbox, in the format “username@domain.ru” or “username”.
7
+ # @param password [String] User's password.
8
+ # The password must:
9
+ # contain from 6 to 20 characters — Latin letters, numbers, and the symbols “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”, “(”, “)”, “_”, “-”, “+”, “:”, “;”, “,”, “.”
10
+ # be different from the username.
11
+ # @return [Hash] Parsed Response
12
+ # @example Example create hi@google.com with strongpassword
13
+ # client.add_mailbox('google.com', 'hi', 'strongpassword')
14
+ # @example Return Hash
15
+ # {
16
+ # "domain": "{domain name}",
17
+ # "login":"{email address of the mailbox}",
18
+ # "uid": "{mailbox ID}",
19
+ # "success": "{status of request execution}"
20
+ # }
21
+ #
22
+ # @see https://api.yandex.com.tr/kurum/doc/reference/email-add.xml
23
+ def add_mailbox(domain, login, password)
24
+ req = self.class.post("/admin/email/add", {query: {domain: domain, login: login, password: password}})
25
+ req.parsed_response
26
+ end
27
+
28
+ # Used for getting a list of the domain's mailboxes.
29
+ # @param domain [String] Name of the domain.
30
+ # @param options [Hash]
31
+ # @option options [Integer] :page Page number in the response. The default value is 1. #TODO
32
+ # @option options [Integer] :on_page Number of mailboxes on each response page. The default value is 30. #TODO
33
+ # @return [Hash]
34
+ # @see https://tech.yandex.com/domain/doc/reference/email-list-docpage/
35
+ # @todo Add support for options
36
+ def get_mailboxes(domain, options = {})
37
+ req = self.class.get("/admin/email/list", {query: {domain: domain}})
38
+ req.parsed_response['accounts']
39
+ end
40
+
41
+ # Used for editing mailbox parameters: password, user's first and last name, and so on.
42
+ # @param domain [String] Name of the domain.
43
+ # @param login [String] The email address of the mailbox, in the format “username@domain.com” or “username”.
44
+ # @param options [Hash]
45
+ # @option options [String] :password User's new password.
46
+ # @option options [String] :iname User's first name.
47
+ # @option options [String] :fname User's last name.
48
+ # @option options [String] :enabled Whether the mailbox is enabled.
49
+ # Possible values:
50
+ # yes — Mailbox is enabled
51
+ # no — Mailbox is blocked (for example, due to spam distribution or suspected hacking).
52
+ # @option options [Integer] :birth_date User's date of birth in the format YYYY-MM-DD.
53
+ # @option options [Integer] :sex User's gender.
54
+ # Possible values:
55
+ # 0 — Not specified.
56
+ # 1 — Male.
57
+ # 2 — Female.
58
+ # @option options [Integer] :hintq Secret question.
59
+ # @option options [Integer] :hinta Answer to the secret question.
60
+ # @return [Hash]
61
+ # @example Example Usage
62
+ # client.update_mailbox('google.com', 'hi', {sex: 0, birth_date: "1998-09-04"})
63
+ # @example Example Response
64
+ # {
65
+ # "domain": "{domain name}",
66
+ # "login":"{email address of the mailbox}",
67
+ # "uid": "{mailbox ID}",
68
+ # "success": "{status of request execution}",
69
+ # "account":
70
+ # {
71
+ # "uid": "{mailbox ID}",
72
+ # "iname": "{user's name}",
73
+ # "sex": "{user's gender}",
74
+ # "ready": "{mailbox readiness}",
75
+ # "hintq": "{pet's favorite food ???}",
76
+ # "aliases":
77
+ # [
78
+ # "{alias name}",
79
+ # ...
80
+ # ],
81
+ # "enabled": "{whether mailbox is working}",
82
+ # "maillist": "{mailing list flag}",
83
+ # "fname": "{user's last name}",
84
+ # "birth_date": "{user's date of birth}",
85
+ # "login": "{mailbox email address}",
86
+ # "fio": "{user's full name}"
87
+ # }
88
+ # }
89
+ # @see https://tech.yandex.com/domain/doc/reference/email-edit-docpage/
90
+ def update_mailbox(domain, login, options = {})
91
+ query = {domain: domain, login: login}
92
+ query = query.merge(options)
93
+ req = self.class.post("/admin/email/edit", query: query)
94
+ req.parsed_response
95
+ end
96
+
97
+ # Used for deleting a mailbox on a domain
98
+ # @param domain [String] Name of the domain.
99
+ # @param login [String] The email address of the mailbox, in the format “username@domain.com” or “username”.
100
+ # @return [Hash] Parsed Response
101
+ # @example Example Usage
102
+ # client.delete_mailbox('google.com', 'hi')
103
+ # @example Example Response
104
+ # {
105
+ # "domain": "{domain name}",
106
+ # "login":"{mailbox address}",
107
+ # "success": "{status of request execution}"
108
+ # }
109
+ # @see https://api.yandex.com.tr/kurum/doc/reference/email-del.xml
110
+ def delete_mailbox(domain, login)
111
+ req = self.class.post("/admin/email/del", {query: {domain: domain, login: login}})
112
+ req.parsed_response
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,24 @@
1
+ require "yandex_domains/version"
2
+ require "yandex_domains/admin/domain"
3
+ require "yandex_domains/admin/email"
4
+ require "httparty"
5
+
6
+ module YandexDomains
7
+ class Client
8
+ include HTTParty
9
+ attr_accessor :pdd_token
10
+ base_uri 'https://pddimp.yandex.ru/api2'
11
+
12
+ # Initializes a new Client
13
+ #
14
+ # @param pdd_token [String]
15
+ # @return [YandexDomains::Client]
16
+ def initialize(pdd_token)
17
+ self.pdd_token = pdd_token
18
+ self.class.headers 'PddToken' => pdd_token
19
+ end
20
+
21
+ include YandexDomains::Admin::Domain
22
+ include YandexDomains::Admin::Email
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module YandexDomains
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,149 +1 @@
1
- require "yandex_domains/version"
2
- require "httparty"
3
-
4
- module YandexDomains
5
- class Client
6
- include HTTParty
7
- attr_accessor :pdd_token
8
- base_uri 'https://pddimp.yandex.ru/api2'
9
-
10
- # Initializes a new Client
11
- #
12
- # @param pdd_token [String]
13
- # @return [YandexDomains::Client]
14
- def initialize(pdd_token)
15
- self.pdd_token = pdd_token
16
- self.class.headers 'PddToken' => pdd_token
17
- end
18
-
19
- # Used for signing up a domain.
20
- # @param domain [String]
21
- # @return [Hash]
22
- # @see https://api.yandex.com.tr/kurum/doc/reference/domain-register.xml
23
- def connect_domain(domain)
24
- req = self.class.post("/admin/domain/register", {query: {domain: domain}})
25
- req.parsed_response
26
- end
27
-
28
- # The request is used for getting the results of the last check, the date and time the check was performed,
29
- # and the date and time of the next check.
30
- # @param [String] domain
31
- # @return [Hash] Parsed Response
32
- # @see https://api.yandex.com.tr/kurum/doc/reference/domain-registrationstatus.xml
33
- def registration_status(domain)
34
- req = self.class.get("/admin/domain/registration_status", {query: {domain: domain}})
35
- req.parsed_response
36
- end
37
-
38
- # Used for adding a mailbox for the domain.
39
- # @param domain [String] Name of the domain.
40
- # @param login [String] The email address of the mailbox, in the format “username@domain.ru” or “username”.
41
- # @param password [String] User's password.
42
- # The password must:
43
- # contain from 6 to 20 characters — Latin letters, numbers, and the symbols “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”, “(”, “)”, “_”, “-”, “+”, “:”, “;”, “,”, “.”
44
- # be different from the username.
45
- # @return [Hash] Parsed Response
46
- # @example Example create hi@google.com with strongpassword
47
- # client.add_mailbox('google.com', 'hi', 'strongpassword')
48
- # @example Return Hash
49
- # {
50
- # "domain": "{domain name}",
51
- # "login":"{email address of the mailbox}",
52
- # "uid": "{mailbox ID}",
53
- # "success": "{status of request execution}"
54
- # }
55
- #
56
- # @see https://api.yandex.com.tr/kurum/doc/reference/email-add.xml
57
- def add_mailbox(domain, login, password)
58
- req = self.class.post("/admin/email/add", {query: {domain: domain, login: login, password: password}})
59
- req.parsed_response
60
- end
61
-
62
- # Used for getting a list of the domain's mailboxes.
63
- # @param domain [String] Name of the domain.
64
- # @param options [Hash]
65
- # @option options [Integer] :page Page number in the response. The default value is 1. #TODO
66
- # @option options [Integer] :on_page Number of mailboxes on each response page. The default value is 30. #TODO
67
- # @return [Hash]
68
- # @see https://tech.yandex.com/domain/doc/reference/email-list-docpage/
69
- # @todo Add support for options
70
- def get_mailboxes(domain, options = {})
71
- req = self.class.get("/admin/email/list", {query: {domain: domain}})
72
- req.parsed_response['accounts']
73
- end
74
-
75
- # Used for editing mailbox parameters: password, user's first and last name, and so on.
76
- # @param domain [String] Name of the domain.
77
- # @param login [String] The email address of the mailbox, in the format “username@domain.com” or “username”.
78
- # @param options [Hash]
79
- # @option options [String] :password User's new password.
80
- # @option options [String] :iname User's first name.
81
- # @option options [String] :fname User's last name.
82
- # @option options [String] :enabled Whether the mailbox is enabled.
83
- # Possible values:
84
- # yes — Mailbox is enabled
85
- # no — Mailbox is blocked (for example, due to spam distribution or suspected hacking).
86
- # @option options [Integer] :birth_date User's date of birth in the format YYYY-MM-DD.
87
- # @option options [Integer] :sex User's gender.
88
- # Possible values:
89
- # 0 — Not specified.
90
- # 1 — Male.
91
- # 2 — Female.
92
- # @option options [Integer] :hintq Secret question.
93
- # @option options [Integer] :hinta Answer to the secret question.
94
- # @return [Hash]
95
- # @example Example Usage
96
- # client.update_mailbox('google.com', 'hi', {sex: 0, birth_date: "1998-09-04"})
97
- # @example Example Response
98
- # {
99
- # "domain": "{domain name}",
100
- # "login":"{email address of the mailbox}",
101
- # "uid": "{mailbox ID}",
102
- # "success": "{status of request execution}",
103
- # "account":
104
- # {
105
- # "uid": "{mailbox ID}",
106
- # "iname": "{user's name}",
107
- # "sex": "{user's gender}",
108
- # "ready": "{mailbox readiness}",
109
- # "hintq": "{pet's favorite food ???}",
110
- # "aliases":
111
- # [
112
- # "{alias name}",
113
- # ...
114
- # ],
115
- # "enabled": "{whether mailbox is working}",
116
- # "maillist": "{mailing list flag}",
117
- # "fname": "{user's last name}",
118
- # "birth_date": "{user's date of birth}",
119
- # "login": "{mailbox email address}",
120
- # "fio": "{user's full name}"
121
- # }
122
- # }
123
- # @see https://tech.yandex.com/domain/doc/reference/email-edit-docpage/
124
- def update_mailbox(domain, login, options = {})
125
- query = {domain: domain, login: login}
126
- query = query.merge(options)
127
- req = self.class.post("/admin/email/edit", query: query)
128
- req.parsed_response
129
- end
130
- # Used for deleting a mailbox on a domain
131
- # @param domain [String] Name of the domain.
132
- # @param login [String] The email address of the mailbox, in the format “username@domain.com” or “username”.
133
- # @return [Hash] Parsed Response
134
- # @example Example Usage
135
- # client.delete_mailbox('google.com', 'hi')
136
- # @example Example Response
137
- # {
138
- # "domain": "{domain name}",
139
- # "login":"{mailbox address}",
140
- # "success": "{status of request execution}"
141
- # }
142
- # @see https://api.yandex.com.tr/kurum/doc/reference/email-del.xml
143
- def delete_mailbox(domain, login)
144
- req = self.class.post("/admin/email/del", {query: {domain: domain, login: login}})
145
- req.parsed_response
146
- end
147
-
148
- end
149
- end
1
+ require "yandex_domains/client"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yandex_domains
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mehmet Beydogan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-29 00:00:00.000000000 Z
11
+ date: 2015-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -68,6 +68,9 @@ files:
68
68
  - bin/console
69
69
  - bin/setup
70
70
  - lib/yandex_domains.rb
71
+ - lib/yandex_domains/admin/domain.rb
72
+ - lib/yandex_domains/admin/email.rb
73
+ - lib/yandex_domains/client.rb
71
74
  - lib/yandex_domains/version.rb
72
75
  - yandex_domains.gemspec
73
76
  homepage: http://github.com/beydogan/yandex-domains
@@ -95,3 +98,4 @@ signing_key:
95
98
  specification_version: 4
96
99
  summary: Ruby client for Yandex.Mail for Domains API
97
100
  test_files: []
101
+ has_rdoc: