zerobounce-sdk 2.1.8 → 3.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +172 -19
  3. data/README.md +477 -410
  4. data/lib/zerobounce/api_key.rb +21 -0
  5. data/lib/zerobounce/api_urls.rb +9 -0
  6. data/lib/zerobounce/base_request.rb +260 -8
  7. data/lib/zerobounce/client.rb +30 -0
  8. data/lib/zerobounce/configuration.rb +24 -3
  9. data/lib/zerobounce/error.rb +20 -0
  10. data/lib/zerobounce/get_file_helper.rb +6 -8
  11. data/lib/zerobounce/priority3.rb +351 -0
  12. data/lib/zerobounce/request.rb +84 -42
  13. data/lib/zerobounce/response_error.rb +117 -0
  14. data/lib/zerobounce/validate_sub_status.rb +1 -0
  15. data/lib/zerobounce/version.rb +1 -1
  16. data/lib/zerobounce/warmup.rb +471 -0
  17. data/lib/zerobounce.rb +112 -26
  18. metadata +46 -41
  19. data/.dockerignore +0 -17
  20. data/.env.example +0 -3
  21. data/.github/auto_assign.yml +0 -5
  22. data/.github/dependabot.yml +0 -35
  23. data/.github/workflows/auto_assign_ci.yaml +0 -21
  24. data/.github/workflows/codeql.yml +0 -105
  25. data/.github/workflows/publish.yml +0 -131
  26. data/.github/workflows/sdk_ci.yml +0 -29
  27. data/.gitignore +0 -70
  28. data/.rspec +0 -2
  29. data/.ruby-version +0 -1
  30. data/CODE_OF_CONDUCT.md +0 -69
  31. data/CONTRIBUTING.md +0 -112
  32. data/Dockerfile +0 -17
  33. data/Gemfile +0 -13
  34. data/Gemfile.lock +0 -135
  35. data/LICENSE.txt +0 -21
  36. data/Rakefile +0 -26
  37. data/SECURITY.md +0 -21
  38. data/bin/bundle +0 -105
  39. data/bin/console +0 -7
  40. data/bin/setup +0 -6
  41. data/data/zerobounce-ai-scoring.csv +0 -31
  42. data/data/zerobounce-batch-validation.csv +0 -31
  43. data/documentation.md +0 -530
  44. data/files/scoring.csv +0 -1
  45. data/files/validation.csv +0 -1
  46. data/files/zerobounce-ai-scoring.csv +0 -31
  47. data/files/zerobounce-batch-validation.csv +0 -31
  48. data/lib/zerobounce/mock_request.rb +0 -86
  49. data/zerobounce.gemspec +0 -49
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zerobounce/base_request'
4
- require 'zerobounce/get_file_helper'
5
-
6
- module Zerobounce
7
-
8
- # Sends the HTTP request.
9
- class MockRequest < BaseRequest
10
-
11
- def self.get(path, params, content_type='application/json')
12
- response = self._get(Zerobounce.configuration.api_root_url, path, params, content_type)
13
- if response.headers[:content_type] == 'application/json'
14
- response_body = response.body
15
- response_body_json = JSON.parse(response_body)
16
-
17
- raise (response_body_json['error']) if response_body_json.key?('error')
18
- raise (response_body_json['errors'][0]['error']) \
19
- if response_body_json.key?('errors') and \
20
- response_body_json['errors'].length > 0
21
-
22
- return response_body_json
23
- else
24
- return response
25
- end
26
- end
27
-
28
- def self.bulk_get(path, params, content_type='application/json')
29
- response = self._get(Zerobounce.configuration.bulk_api_root_url, path, params, content_type)
30
- if response.headers[:content_type] == 'application/json'
31
- response_body = response.body
32
- response_body_json = JSON.parse(response_body)
33
-
34
- raise (response_body_json['error']) if response_body_json.key?('error')
35
- raise (response_body_json['errors'][0]['error']) \
36
- if response_body_json.key?('errors') and \
37
- response_body_json['errors'].length > 0
38
-
39
- return response_body_json
40
- else
41
- return response.body
42
- end
43
- end
44
-
45
- def self.bulk_getfile(path, params)
46
- response = self._get(Zerobounce.configuration.bulk_api_root_url, path, params, 'application/json')
47
- GetFileHelper.process_getfile_response(response)
48
- end
49
-
50
- def self.post(path, params, content_type='application/json', filepath=nil)
51
- response = self._post(Zerobounce.configuration.api_root_url, path, params, \
52
- content_type, filepath)
53
- if response.headers[:content_type] == 'application/json'
54
- response_body = response.body
55
- response_body_json = JSON.parse(response_body)
56
-
57
- raise (response_body_json['error']) if response_body_json.key?('error')
58
- raise (response_body_json['errors'][0]['error']) \
59
- if response_body_json.key?('errors') and \
60
- response_body_json['errors'].length > 0
61
-
62
- return response_body_json
63
- end
64
- return response.body
65
- end
66
-
67
- def self.bulk_post(path, params, content_type='application/json', filepath=nil)
68
- response = self._post(Zerobounce.configuration.bulk_api_root_url, path, params, \
69
- content_type, filepath)
70
- if response.headers[:content_type] == 'application/json'
71
- response_body = response.body
72
- response_body_json = JSON.parse(response_body)
73
-
74
- raise (response_body_json['error']) if response_body_json.key?('error')
75
- raise (response_body_json['errors'][0]['error']) \
76
- if response_body_json.key?('errors') and \
77
- response_body_json['errors'].length > 0
78
-
79
- return response_body_json
80
- end
81
- return response.body
82
- end
83
-
84
- end
85
-
86
- end
data/zerobounce.gemspec DELETED
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'zerobounce/version'
6
-
7
- Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
8
- spec.name = 'zerobounce-sdk'
9
- spec.version = Zerobounce::VERSION
10
- spec.authors = ['Zero Bounce']
11
- spec.email = ['integrations@zerobounce.net']
12
-
13
- spec.summary = 'A Ruby client for Zerobounce.net.'
14
- spec.description = 'A Ruby client for Zerobounce.net.'
15
- spec.homepage = 'https://zerobounce.net'
16
- spec.license = 'MIT'
17
-
18
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.match(%r{^(test|spec|features)/})
20
- end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ['lib']
24
-
25
- spec.metadata['yard.run'] = 'yri' # use "yard" to build full HTML docs.
26
-
27
- spec.required_ruby_version = '>= 2.5'
28
-
29
- spec.add_dependency 'rest-client', '~>2.1'
30
- spec.add_dependency 'dotenv'
31
-
32
- spec.add_development_dependency 'base64' # stdlib gem on Ruby 3.4+
33
- spec.add_development_dependency 'bigdecimal' # required by crack (webmock) on Ruby 3.4+
34
- spec.add_development_dependency 'ostruct' # stdlib gem on Ruby 3.5+ (json/simplecov load chain)
35
- spec.add_development_dependency 'logger' # stdlib gem on Ruby 3.4+ (mime-types / rest-client load chain)
36
- spec.add_development_dependency 'bundler', '~> 2.4.6'
37
- spec.add_development_dependency 'pry', '~> 0.14.1'
38
- spec.add_development_dependency 'rake', '~> 13.0'
39
- spec.add_development_dependency 'rspec', '~> 3.0'
40
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
41
- spec.add_development_dependency 'rubocop', '~> 1.15'
42
- spec.add_development_dependency 'rubocop-performance', '~> 1.11', '>= 1.11.3'
43
- spec.add_development_dependency 'rubocop-rake', '~> 0.5.1'
44
- spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
45
- spec.add_development_dependency 'simplecov', '~> 0.21.2'
46
- spec.add_development_dependency 'yard', '~> 0.9.42'
47
- spec.add_development_dependency 'webmock', '~> 3.18'
48
- spec.add_development_dependency 'vcr', '~> 6.4'
49
- end