neverbounce-api 1.0.0
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 +7 -0
- data/.codeclimate.yml +8 -0
- data/.gitignore +21 -0
- data/.rspec +4 -0
- data/.rubocop.yml +1161 -0
- data/.travis.yml +27 -0
- data/.yardopts +2 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +48 -0
- data/LICENSE +9 -0
- data/README.md +235 -0
- data/lib/never_bounce/api/client.rb +259 -0
- data/lib/never_bounce/api/error.rb +21 -0
- data/lib/never_bounce/api/feature/basic_initialize.rb +20 -0
- data/lib/never_bounce/api/feature/eigencache.rb +48 -0
- data/lib/never_bounce/api/feature/igetset.rb +41 -0
- data/lib/never_bounce/api/feature/oattrs.rb +100 -0
- data/lib/never_bounce/api/feature/require_attr.rb +27 -0
- data/lib/never_bounce/api/request/account_info.rb +29 -0
- data/lib/never_bounce/api/request/base.rb +102 -0
- data/lib/never_bounce/api/request/jobs_create.rb +90 -0
- data/lib/never_bounce/api/request/jobs_delete.rb +34 -0
- data/lib/never_bounce/api/request/jobs_download.rb +34 -0
- data/lib/never_bounce/api/request/jobs_parse.rb +55 -0
- data/lib/never_bounce/api/request/jobs_results.rb +53 -0
- data/lib/never_bounce/api/request/jobs_search.rb +57 -0
- data/lib/never_bounce/api/request/jobs_start.rb +47 -0
- data/lib/never_bounce/api/request/jobs_status.rb +37 -0
- data/lib/never_bounce/api/request/single_check.rb +67 -0
- data/lib/never_bounce/api/response/account_info.rb +39 -0
- data/lib/never_bounce/api/response/account_info/job_counts.rb +26 -0
- data/lib/never_bounce/api/response/address_info.rb +43 -0
- data/lib/never_bounce/api/response/base.rb +15 -0
- data/lib/never_bounce/api/response/container.rb +126 -0
- data/lib/never_bounce/api/response/credits_info/base.rb +30 -0
- data/lib/never_bounce/api/response/credits_info/monthly.rb +16 -0
- data/lib/never_bounce/api/response/credits_info/paid.rb +20 -0
- data/lib/never_bounce/api/response/error_message.rb +17 -0
- data/lib/never_bounce/api/response/feature/job_status_fields.rb +68 -0
- data/lib/never_bounce/api/response/feature/job_status_fields/total.rb +46 -0
- data/lib/never_bounce/api/response/jobs_create.rb +10 -0
- data/lib/never_bounce/api/response/jobs_delete.rb +8 -0
- data/lib/never_bounce/api/response/jobs_download.rb +19 -0
- data/lib/never_bounce/api/response/jobs_parse.rb +10 -0
- data/lib/never_bounce/api/response/jobs_results.rb +34 -0
- data/lib/never_bounce/api/response/jobs_results/item.rb +65 -0
- data/lib/never_bounce/api/response/jobs_results/query.rb +20 -0
- data/lib/never_bounce/api/response/jobs_search.rb +33 -0
- data/lib/never_bounce/api/response/jobs_search/query.rb +16 -0
- data/lib/never_bounce/api/response/jobs_search/result.rb +13 -0
- data/lib/never_bounce/api/response/jobs_start.rb +10 -0
- data/lib/never_bounce/api/response/jobs_status.rb +11 -0
- data/lib/never_bounce/api/response/message.rb +32 -0
- data/lib/never_bounce/api/response/single_check.rb +68 -0
- data/lib/never_bounce/api/response/status_message.rb +17 -0
- data/lib/never_bounce/api/response/success_message.rb +12 -0
- data/lib/never_bounce/api/session.rb +141 -0
- data/lib/never_bounce/api/version.rb +4 -0
- data/lib/neverbounce-api.rb +4 -0
- data/lib/neverbounce.rb +3 -0
- data/neverbounce-api.gemspec +20 -0
- data/spec/lib/never_bounce/api/client_spec.rb +199 -0
- data/spec/lib/never_bounce/api/feature/basic_initialize_spec.rb +25 -0
- data/spec/lib/never_bounce/api/feature/eigencache_spec.rb +28 -0
- data/spec/lib/never_bounce/api/feature/igetset_spec.rb +45 -0
- data/spec/lib/never_bounce/api/feature/oattrs_spec.rb +72 -0
- data/spec/lib/never_bounce/api/feature/require_attr_spec.rb +25 -0
- data/spec/lib/never_bounce/api/request/account_info_spec.rb +29 -0
- data/spec/lib/never_bounce/api/request/base_spec.rb +6 -0
- data/spec/lib/never_bounce/api/request/jobs_create_spec.rb +89 -0
- data/spec/lib/never_bounce/api/request/jobs_delete_spec.rb +31 -0
- data/spec/lib/never_bounce/api/request/jobs_download_spec.rb +31 -0
- data/spec/lib/never_bounce/api/request/jobs_parse_spec.rb +44 -0
- data/spec/lib/never_bounce/api/request/jobs_results_spec.rb +42 -0
- data/spec/lib/never_bounce/api/request/jobs_search_spec.rb +40 -0
- data/spec/lib/never_bounce/api/request/jobs_start_spec.rb +44 -0
- data/spec/lib/never_bounce/api/request/jobs_status_spec.rb +31 -0
- data/spec/lib/never_bounce/api/request/single_check_spec.rb +44 -0
- data/spec/lib/never_bounce/api/response/account_info/job_counts_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/account_info_spec.rb +9 -0
- data/spec/lib/never_bounce/api/response/address_info_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/base_spec.rb +6 -0
- data/spec/lib/never_bounce/api/response/container_spec.rb +142 -0
- data/spec/lib/never_bounce/api/response/credits_info/base_spec.rb +31 -0
- data/spec/lib/never_bounce/api/response/credits_info/monthly_spec.rb +11 -0
- data/spec/lib/never_bounce/api/response/credits_info/paid_spec.rb +11 -0
- data/spec/lib/never_bounce/api/response/feature/job_status_fields/total_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/feature/job_status_fields_spec.rb +42 -0
- data/spec/lib/never_bounce/api/response/jobs_create_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_delete_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_download_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_parse_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_results/jobs_results_item_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_results/jobs_results_query_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_results_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_search/jobs_search_query_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_search/jobs_search_result_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_search_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_start_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/jobs_status_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/single_check_spec.rb +7 -0
- data/spec/lib/never_bounce/api/response/spec_helper.rb +8 -0
- data/spec/lib/never_bounce/api/session_spec.rb +140 -0
- data/spec/lib/never_bounce/api_spec.rb +8 -0
- data/spec/spec_helper.rb +49 -0
- data/spec/spec_support/include_dir_context.rb +22 -0
- data/spec/spec_support/simplecov.rb +18 -0
- metadata +210 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_delete"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsDelete < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Symbol]
|
|
12
|
+
def self.http_method
|
|
13
|
+
:post
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @return [String]
|
|
17
|
+
def self.path
|
|
18
|
+
"jobs/delete"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @return [Response::Jobs::Delete]
|
|
22
|
+
def self.response_klass
|
|
23
|
+
Response::JobsDelete
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [Hash]
|
|
27
|
+
def to_h
|
|
28
|
+
{
|
|
29
|
+
job_id: require_attr(:job_id),
|
|
30
|
+
key: require_attr(:api_key),
|
|
31
|
+
}
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end; end; end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_download"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsDownload < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Symbol]
|
|
12
|
+
def self.http_method
|
|
13
|
+
:get
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @return [String]
|
|
17
|
+
def self.path
|
|
18
|
+
"jobs/download"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @return [Response::JobsDownload]
|
|
22
|
+
def self.response_klass
|
|
23
|
+
Response::JobsDownload
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [Hash]
|
|
27
|
+
def to_h
|
|
28
|
+
{
|
|
29
|
+
job_id: require_attr(:job_id),
|
|
30
|
+
key: require_attr(:api_key),
|
|
31
|
+
}
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end; end; end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_parse"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsParse < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Boolean]
|
|
12
|
+
attr_accessor :auto_start
|
|
13
|
+
|
|
14
|
+
# @return [Symbol]
|
|
15
|
+
def self.http_method
|
|
16
|
+
:post
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [String]
|
|
20
|
+
def self.path
|
|
21
|
+
"jobs/parse"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @return [Response::JobsParse]
|
|
25
|
+
def self.response_klass
|
|
26
|
+
Response::JobsParse
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Return a ready-to-merge mode attributes hash.
|
|
30
|
+
# @return [Hash]
|
|
31
|
+
def mode_h
|
|
32
|
+
@mode_h ||= {}.tap do |_|
|
|
33
|
+
unless (v = auto_start).nil?
|
|
34
|
+
_[:auto_start] = v
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [Hash]
|
|
40
|
+
def to_h
|
|
41
|
+
{
|
|
42
|
+
job_id: require_attr(:job_id),
|
|
43
|
+
key: require_attr(:api_key),
|
|
44
|
+
}.merge(mode_h)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end; end; end
|
|
48
|
+
|
|
49
|
+
#
|
|
50
|
+
# Implementation notes:
|
|
51
|
+
#
|
|
52
|
+
# * A convention for all classes working with mode attributes like `auto_start`.
|
|
53
|
+
# * `to_h[:auto_start]` is present if value is not `nil`.
|
|
54
|
+
# * Passing `request.auto_start = nil` from the outside doesn't affect `to_h` result.
|
|
55
|
+
# Thus `nil` value renders the request to use server defaults.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_results"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsResults < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Integer]
|
|
12
|
+
attr_accessor :page
|
|
13
|
+
|
|
14
|
+
# @return [Integer]
|
|
15
|
+
attr_accessor :per_page
|
|
16
|
+
|
|
17
|
+
# @return [Symbol]
|
|
18
|
+
def self.http_method
|
|
19
|
+
:get
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @return [String]
|
|
23
|
+
def self.path
|
|
24
|
+
"jobs/results"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [Response::JobsResults]
|
|
28
|
+
def self.response_klass
|
|
29
|
+
Response::JobsResults
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @return [Hash]
|
|
33
|
+
def mode_h
|
|
34
|
+
@mode_h ||= {}.tap do |_|
|
|
35
|
+
unless (v = per_page).nil?
|
|
36
|
+
_[:items_per_page] = v
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
unless (v = page).nil?
|
|
40
|
+
_[:page] = v
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @return [Hash]
|
|
46
|
+
def to_h
|
|
47
|
+
{
|
|
48
|
+
job_id: require_attr(:job_id),
|
|
49
|
+
key: require_attr(:api_key),
|
|
50
|
+
}.merge(mode_h)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end; end; end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_search"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsSearch < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Integer]
|
|
12
|
+
attr_accessor :page
|
|
13
|
+
|
|
14
|
+
# @return [Integer]
|
|
15
|
+
attr_accessor :per_page
|
|
16
|
+
|
|
17
|
+
# @return [Symbol]
|
|
18
|
+
def self.http_method
|
|
19
|
+
:get
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @return [String]
|
|
23
|
+
def self.path
|
|
24
|
+
"jobs/search"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [Response::JobsSearch]
|
|
28
|
+
def self.response_klass
|
|
29
|
+
Response::JobsSearch
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Return a ready-to-merge mode attributes hash.
|
|
33
|
+
# @return [Hash]
|
|
34
|
+
def mode_h
|
|
35
|
+
@mode_h ||= {}.tap do |_|
|
|
36
|
+
unless (v = job_id).nil?
|
|
37
|
+
_[:job_id] = v
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
unless (v = page).nil?
|
|
41
|
+
_[:page] = v
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
unless (v = per_page).nil?
|
|
45
|
+
_[:items_per_page] = v
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @return [Hash]
|
|
51
|
+
def to_h
|
|
52
|
+
{
|
|
53
|
+
key: require_attr(:api_key),
|
|
54
|
+
}.merge(mode_h)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end; end; end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_start"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsStart < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Boolean]
|
|
12
|
+
attr_accessor :run_sample
|
|
13
|
+
|
|
14
|
+
# @return [Symbol]
|
|
15
|
+
def self.http_method
|
|
16
|
+
:post
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [String]
|
|
20
|
+
def self.path
|
|
21
|
+
"jobs/start"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @return [Response::JobsStart]
|
|
25
|
+
def self.response_klass
|
|
26
|
+
Response::JobsStart
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Return a ready-to-merge mode attributes hash.
|
|
30
|
+
# @return [Hash]
|
|
31
|
+
def mode_h
|
|
32
|
+
@mode_h ||= {}.tap do |_|
|
|
33
|
+
unless (v = run_sample).nil?
|
|
34
|
+
_[:run_sample] = v
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [Hash]
|
|
40
|
+
def to_h
|
|
41
|
+
{
|
|
42
|
+
job_id: require_attr(:job_id),
|
|
43
|
+
key: require_attr(:api_key),
|
|
44
|
+
}.merge(mode_h)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end; end; end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/jobs_status"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class JobsStatus < Base
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
attr_accessor :job_id
|
|
10
|
+
|
|
11
|
+
# @return [Boolean]
|
|
12
|
+
attr_accessor :auto_start
|
|
13
|
+
|
|
14
|
+
# @return [Symbol]
|
|
15
|
+
def self.http_method
|
|
16
|
+
:get
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [String]
|
|
20
|
+
def self.path
|
|
21
|
+
"jobs/status"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @return [Response::JobsStatus]
|
|
25
|
+
def self.response_klass
|
|
26
|
+
Response::JobsStatus
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @return [Hash]
|
|
30
|
+
def to_h
|
|
31
|
+
{
|
|
32
|
+
job_id: require_attr(:job_id),
|
|
33
|
+
key: require_attr(:api_key),
|
|
34
|
+
}
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end; end; end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/single_check"
|
|
3
|
+
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module NeverBounce; module API; module Request
|
|
7
|
+
class SingleCheck < Base
|
|
8
|
+
# @return [String]
|
|
9
|
+
attr_accessor :email
|
|
10
|
+
|
|
11
|
+
# @return [Boolean]
|
|
12
|
+
attr_accessor :address_info
|
|
13
|
+
|
|
14
|
+
# @return [Boolean]
|
|
15
|
+
attr_accessor :credits_info
|
|
16
|
+
|
|
17
|
+
# @return [Integer]
|
|
18
|
+
attr_accessor :timeout
|
|
19
|
+
|
|
20
|
+
# @return [Symbol]
|
|
21
|
+
def self.http_method
|
|
22
|
+
:get
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @return [String]
|
|
26
|
+
def self.path
|
|
27
|
+
"single/check"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @return [Response::SingleCheck]
|
|
31
|
+
def self.response_klass
|
|
32
|
+
Response::SingleCheck
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Return a ready-to-merge mode attributes hash.
|
|
36
|
+
# @return [Hash]
|
|
37
|
+
def mode_h
|
|
38
|
+
@mode_h ||= {}.tap do |_|
|
|
39
|
+
unless (v = address_info).nil?
|
|
40
|
+
_[:address_info] = v
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
unless (v = credits_info).nil?
|
|
44
|
+
_[:credits_info] = v
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
unless (v = timeout).nil?
|
|
48
|
+
_[:timeout] = v
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @return [Hash]
|
|
54
|
+
def to_h
|
|
55
|
+
{
|
|
56
|
+
email: require_attr(:email),
|
|
57
|
+
key: require_attr(:api_key),
|
|
58
|
+
}.merge(mode_h)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end; end; end
|
|
62
|
+
|
|
63
|
+
#
|
|
64
|
+
# Implementation notes:
|
|
65
|
+
#
|
|
66
|
+
# * `address_info` and `credits_info` have ugly names for bools, but I keep them for consistency
|
|
67
|
+
# with the server protocol. We've got the docs stating their type, too.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
require "never_bounce/api/response/credits_info/monthly"
|
|
3
|
+
require "never_bounce/api/response/credits_info/paid"
|
|
4
|
+
|
|
5
|
+
require_relative "success_message"
|
|
6
|
+
|
|
7
|
+
module NeverBounce; module API; module Response
|
|
8
|
+
class AccountInfo < SuccessMessage
|
|
9
|
+
require_relative "account_info/job_counts"
|
|
10
|
+
|
|
11
|
+
# @!attribute [rw]
|
|
12
|
+
oattr :credits_info, :writer
|
|
13
|
+
|
|
14
|
+
# @!attribute [rw]
|
|
15
|
+
oattr :job_counts, :writer
|
|
16
|
+
|
|
17
|
+
# @return [CreditsInfo::Monthly]
|
|
18
|
+
# @return [CreditsInfo::Paid]
|
|
19
|
+
def credits_info
|
|
20
|
+
@credits_info ||= begin
|
|
21
|
+
h = body_hash.fetch("credits_info")
|
|
22
|
+
klass = if h.has_key? "monthly_api_usage"
|
|
23
|
+
CreditsInfo::Monthly
|
|
24
|
+
elsif h.has_key? "paid_credits_remaining"
|
|
25
|
+
CreditsInfo::Paid
|
|
26
|
+
else
|
|
27
|
+
raise "Unknown `credits_info`: #{h.inspect}"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
klass.new(h)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @return [JobCounts]
|
|
35
|
+
def job_counts
|
|
36
|
+
@job_counts ||= JobCounts.new(body_hash: body_hash.fetch("job_counts"))
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end; end; end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
require_relative "../account_info"
|
|
3
|
+
|
|
4
|
+
module NeverBounce; module API; module Response; class AccountInfo
|
|
5
|
+
class JobCounts < Container
|
|
6
|
+
# @!attribute completed
|
|
7
|
+
# Number of completed jobs.
|
|
8
|
+
# @return [Integer]
|
|
9
|
+
oattr :completed, :scalar, type: :integer
|
|
10
|
+
|
|
11
|
+
# @!attribute processing
|
|
12
|
+
# Number of jobs in processing.
|
|
13
|
+
# @return [Integer]
|
|
14
|
+
oattr :processing, :scalar, type: :integer #:nodoc:
|
|
15
|
+
|
|
16
|
+
# @!attribute queued
|
|
17
|
+
# Number of queued jobs.
|
|
18
|
+
# @return [Integer]
|
|
19
|
+
oattr :queued, :scalar, type: :integer
|
|
20
|
+
|
|
21
|
+
# @!attribute under_review
|
|
22
|
+
# Number of items under review.
|
|
23
|
+
# @return [Integer]
|
|
24
|
+
oattr :under_review, :scalar, type: :integer
|
|
25
|
+
end
|
|
26
|
+
end; end; end; end
|