tenios-api 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8f391faf118141ffe8aa25f8b03268fe17a042725743f38b01b54a3cf7e6fd7
4
- data.tar.gz: 52ff37ed16b3d624c7e5bc637890dd15581f8d0fb38360f0c314e5b05f9f25e8
3
+ metadata.gz: c8f4b1e8779c3b969fddafc92b7291a802319c6f581097510f59749708eadf70
4
+ data.tar.gz: edcf7cc2aad2bac65b6e088e34f8c735a79309f6e36adf676433a78fa3c75967
5
5
  SHA512:
6
- metadata.gz: fb2864919b8829eae4b1ef6af31e1aa01f25803a2d1e3db1145bf08a7767cf0b3b80ba685322382e6f7d6fc4792e99becb0069470755777e9b7a9ddd816df3a3
7
- data.tar.gz: 64dfb553c6c1c830748b5033054b11feaee46388266ae1827e08e054755988811e07f2a84402d516d4d3dda3e7cd793e1e184038e5b3f9d1e4d9a4df04262c27
6
+ metadata.gz: 90e98323495cbc63cd7bf8f024ee0b245dd3ee4d2c9538beeacf01aae55a1527a25d4f5a7b02e15741fdb5a74bde3074f1740ebce92351764f45df0f07b9ce9b
7
+ data.tar.gz: f16d05a78e70aee4af849720d0a30b2c7caeac4a2d315ae696b7c10cc25075d4c4ab7a49ab18554b9552891f062556ba2f8c1c0364331350289dfcbfaae6da94
data/.circleci/config.yml CHANGED
@@ -1,54 +1,34 @@
1
- ruby: &ruby
2
- image: carwow/ruby-ci:2.5.3
3
-
4
- version: 2
1
+ version: 2.1
5
2
 
6
3
  jobs:
7
- bundle:
8
- working_directory: ~/tenios-api
4
+ test:
5
+ parameters:
6
+ ruby_version:
7
+ type: string
9
8
  docker:
10
- - *ruby
9
+ - image: cimg/ruby:<< parameters.ruby_version >>
11
10
  steps:
12
11
  - checkout
13
12
  - restore_cache:
14
- keys:
15
- - bundle-{{ checksum "Gemfile.lock" }}
16
- - bundle-
17
- - run: |
18
- bundle config --local path vendor/bundle &&
19
- bundle check || bundle install --jobs=4 --retry=3
13
+ keys:
14
+ - bundle
15
+ - run:
16
+ name: bundle update
17
+ command: |
18
+ bundle config --local path vendor/bundle
19
+ bundle update --jobs=4 --retry=3
20
+ bundle clean --force
20
21
  - save_cache:
21
- key: bundle-{{ checksum "Gemfile.lock" }}
22
- paths: [~/tenios-api/vendor/bundle]
23
- - persist_to_workspace:
24
- root: '~'
25
- paths: [tenios-api]
26
-
27
- rubocop:
28
- working_directory: ~/tenios-api
29
- docker:
30
- - *ruby
31
- steps:
32
- - attach_workspace:
33
- at: '~'
34
- - run: bundle exec rubocop
35
-
36
- tests:
37
- working_directory: ~/tenios-api
38
- docker:
39
- - *ruby
40
- steps:
41
- - attach_workspace:
42
- at: '~'
43
- - run: |
44
- bundle exec rspec
22
+ key: bundle
23
+ paths: [~/project/vendor/bundle]
24
+ - run: bundle exec rake
45
25
 
46
26
  workflows:
47
27
  version: 2
48
- build:
28
+ test:
49
29
  jobs:
50
- - bundle
51
- - rubocop:
52
- requires: [bundle]
53
- - tests:
54
- requires: [bundle]
30
+ - test:
31
+ matrix:
32
+ parameters:
33
+ ruby_version:
34
+ - "2.7"
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /Gemfile.lock
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
data/.rubocop.yml CHANGED
@@ -5,3 +5,9 @@ inherit_gem:
5
5
  Naming/FileName:
6
6
  Exclude:
7
7
  - lib/tenios-api.rb
8
+
9
+ RSpec/VerifiedDoubles:
10
+ Enabled: false
11
+
12
+ Style/FrozenStringLiteralComment:
13
+ Enabled: true
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ ## [1.0.0]
2
+
3
+ ### Changed
4
+
5
+ * Tenios API URL is now https://api.tenios.com
6
+ * Ruby ~> 2.7
7
+
8
+ ### Misc
9
+
10
+ * Internal refactoring (no breaking changes)
11
+
12
+ [1.0.0]: https://github.com/carwow/deals_service_client/compare/v0.4.0...v1.0.0
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
2
4
 
3
5
  # Specify your gem's dependencies in tenios-api.gemspec
4
6
  gemspec
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Tenios API Client ☎️
2
2
 
3
- Get Call Detail Records (CDRs) from [Tenios API].
3
+ HTTP client for [Tenios API].
4
4
 
5
- [Tenios API]: https://www.tenios.de/en/doc/api-cdr-request
5
+ [Tenios API]: https://www.tenios.de/doc-topic/voice-api
6
6
 
7
7
  ## Installation
8
8
 
@@ -18,11 +18,63 @@ gem 'tenios-api'
18
18
  require 'tenios-api'
19
19
 
20
20
  client = Tenios::API::Client.new(access_key: ENV['TENIOS_ACCESS_KEY'])
21
+ ```
22
+
23
+ ### Call Detail Records
24
+
25
+ [Tenios documentation](https://www.tenios.de/en/doc/api-cdr-request)
26
+
27
+ #### Retrive
21
28
 
22
- client.cdrs(Time.new(2019, 2, 1)..Time.new(2019, 2, 2))
29
+ ```ruby
30
+ client.call_detail_records.retrieve(Time.utc(2019, 2, 1)..Time.utc(2019, 2, 2))
23
31
  # returns lazy Enumerator with the records
24
32
  ```
25
33
 
34
+ ### Number Order
35
+
36
+ [Tenios documentation](https://www.tenios.de/en/doc/api-number-order)
37
+
38
+ #### Verification
39
+
40
+ ```ruby
41
+ # check Tenios documentation for verification options
42
+ verification_id = client.verification.create(options)['verification_id']
43
+ ```
44
+
45
+ #### Order
46
+
47
+ ```ruby
48
+ order_id = client.number.order(verification_id: verification_id)['order_id']
49
+ ```
50
+
51
+ #### Cancel
52
+
53
+ ```ruby
54
+ client.number.cancel(phone_number: '+49888888')
55
+ ```
56
+
57
+ ### Record Call
58
+
59
+ [Tenios documentation](https://www.tenios.de/en/doc/api-call-recording)
60
+
61
+ #### Start
62
+
63
+ ```ruby
64
+ recording_uuid = client.record_call.start(
65
+ call_uuid: '9315b018-86bd-424f-a086-7095ce427130'
66
+ )['recording_uuid']
67
+ ```
68
+
69
+ #### Stop
70
+
71
+ ```ruby
72
+ client.record_call.stop(
73
+ call_uuid: '9315b018-86bd-424f-a086-7095ce427130',
74
+ recording_uuid: recording_uuid
75
+ )
76
+ ```
77
+
26
78
  ## Contributing
27
79
 
28
80
  Bug reports and pull requests are welcome on GitHub at https://github.com/carwow/tenios-api-ruby.
data/Rakefile CHANGED
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
5
+ require "standard/rake"
3
6
 
4
7
  RSpec::Core::RakeTask.new(:spec)
5
8
 
6
- task :default => :spec
9
+ task default: [:spec, :standard]
data/bin/console ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "tenios-api"
5
+ require "pry"
6
+
7
+ Pry.start
data/lib/tenios-api.rb CHANGED
@@ -1 +1,9 @@
1
- require 'tenios/api'
1
+ # frozen_string_literal: true
2
+
3
+ require "zeitwerk"
4
+
5
+ Zeitwerk::Loader.for_gem.tap do |loader|
6
+ loader.ignore "#{__dir__}/tenios-api.rb"
7
+ loader.inflector.inflect "api" => "API"
8
+ loader.setup
9
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tenios
4
+ module API
5
+ class CallDetailRecords
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def retrieve(date_range, page_size: 100)
13
+ stream do |page|
14
+ payload = build_payload(date_range, page: page, page_size: page_size)
15
+ client.post("/cdrs/retrieve", payload)
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def build_payload(date_range, page:, page_size:)
22
+ expect_date_range! date_range
23
+
24
+ {
25
+ start_date_from: format_datetime(date_range.begin),
26
+ start_date_to: format_datetime(date_range.end),
27
+ page: page,
28
+ page_size: page_size
29
+ }
30
+ end
31
+
32
+ def expect_date_range!(date_range)
33
+ return if %i[begin end].all? { |method| date_range.respond_to? method }
34
+
35
+ raise TypeError, <<~ERR.strip
36
+ Expect date_range to be Range-like (respond_to methods #begin and #end), but was: #{date_range.class}
37
+ ERR
38
+ end
39
+
40
+ def format_datetime(time)
41
+ time.utc.strftime("%FT%H:%M:%S.0Z")
42
+ end
43
+
44
+ def stream
45
+ Enumerator.new { |records|
46
+ (1..Float::INFINITY).each do |page|
47
+ res = yield page
48
+ res["items"].each { |item| records << item }
49
+ break if res["total_items"] <= page * res["page_size"]
50
+ end
51
+ }.lazy
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,63 +1,51 @@
1
- require 'json'
2
- require 'faraday'
3
- require 'faraday_middleware'
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "faraday"
5
+ require "faraday_middleware"
4
6
 
5
7
  module Tenios
6
8
  module API
7
9
  class Client
8
- def initialize(access_key:)
10
+ URL = "https://api.tenios.com"
11
+
12
+ def initialize(access_key:, url: URL)
9
13
  @access_key = access_key
14
+ @http_client = build_http_client(url)
10
15
  end
11
16
 
12
- def http_client
13
- @http_client ||= Faraday.new(url: 'https://api.tevox.com') do |c|
14
- c.request :json
15
- c.response :json
16
- c.response :raise_error
17
- c.use :gzip
18
-
19
- c.adapter Faraday.default_adapter
20
- end
17
+ def call_detail_records
18
+ CallDetailRecords.new(self)
21
19
  end
22
20
 
23
- def call_detail_records(start_date, page_size: 100)
24
- stream do |page|
25
- payload = payload_for_cdrs(start_date, page: page, page_size: page_size)
26
- http_client.post('/cdrs/retrieve', payload).body
27
- end
21
+ def verification
22
+ Verification.new(self)
28
23
  end
29
- alias cdrs call_detail_records
30
-
31
- private
32
24
 
33
- attr_reader :access_key
34
-
35
- def payload_for_cdrs(start_date, page:, page_size:)
36
- unless %i[begin end].all? { |method| start_date.respond_to? method }
37
- raise TypeError, 'Expect start_date to be Range-like (respond_to methods #begin and #end)'
38
- end
25
+ def number
26
+ Number.new(self)
27
+ end
39
28
 
40
- {
41
- access_key: access_key,
42
- start_date_from: format_datetime(start_date.begin),
43
- start_date_to: format_datetime(start_date.end),
44
- page: page,
45
- page_size: page_size
46
- }.to_json
29
+ def record_call
30
+ RecordCall.new(self)
47
31
  end
48
32
 
49
- def format_datetime(time)
50
- time.utc.strftime('%FT%H:%M:%S.0Z')
33
+ # @api private
34
+ def post(path, **payload)
35
+ @http_client.post(path, payload.merge(access_key: @access_key)).body
51
36
  end
52
37
 
53
- def stream
54
- Enumerator.new do |records|
55
- (1..Float::INFINITY).each do |page|
56
- res = yield page
57
- res['items'].each { |item| records << item }
58
- break if res['total_items'] <= page * res['page_size']
59
- end
60
- end.lazy
38
+ private
39
+
40
+ def build_http_client(url)
41
+ Faraday.new(url: url) { |c|
42
+ c.request :json
43
+ c.response :json
44
+ c.response :raise_error
45
+ c.use :gzip
46
+
47
+ c.adapter Faraday.default_adapter
48
+ }
61
49
  end
62
50
  end
63
51
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tenios
4
+ module API
5
+ class Number
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ NUMBER_TYPES = [
13
+ GEOGRAPHICAL = "GEOGRAPHICAL"
14
+ ].freeze
15
+
16
+ def order(verification_id:, number_type: GEOGRAPHICAL, **options)
17
+ payload = order_payload(verification_id: verification_id, number_type: number_type, **options)
18
+ client.post("/number/order", **payload)
19
+ end
20
+
21
+ def cancel(phone_number:)
22
+ client.post("/number/cancel", phone_number: phone_number)
23
+ end
24
+
25
+ private
26
+
27
+ ORDER_OPTIONS = %i[
28
+ link_to_number
29
+ number_type
30
+ push_secret
31
+ push_url
32
+ verification_id
33
+ ].freeze
34
+ private_constant :ORDER_OPTIONS
35
+
36
+ def order_payload(**options)
37
+ options.slice(*ORDER_OPTIONS)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tenios
4
+ module API
5
+ class RecordCall
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def start(call_uuid:)
13
+ client.post("/record-call/start", call_uuid: call_uuid)
14
+ end
15
+
16
+ def stop(recording_uuid:, call_uuid:)
17
+ client.post("/record-call/stop", call_uuid: call_uuid, recording_uuid: recording_uuid)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "base64"
4
+
5
+ module Tenios
6
+ module API
7
+ class Verification
8
+ attr_reader :client
9
+
10
+ def initialize(client)
11
+ @client = client
12
+ end
13
+
14
+ DOCUMENT_TYPES = %w[
15
+ ALLOCATION_NOTICE
16
+ IDENTITY_CARD
17
+ BUSINESS_LICENSE
18
+ IDENTITY_CARD_AND_BUSINESS_LICENSE
19
+ CERTIFICATE_OF_REGISTRATION
20
+ CONTRACT
21
+ ].freeze
22
+
23
+ def create(options)
24
+ payload = build_payload(options)
25
+ client.post("/verification/create", **payload)
26
+ end
27
+
28
+ private
29
+
30
+ OPTIONS = %i[
31
+ area_code
32
+ city
33
+ country
34
+ document_data
35
+ document_type
36
+ house_number
37
+ street
38
+ zip
39
+ ].freeze
40
+ private_constant :OPTIONS
41
+
42
+ def build_payload(options)
43
+ to_option = build_option(options)
44
+ OPTIONS.map(&to_option).to_h
45
+ end
46
+
47
+ def build_option(options)
48
+ lambda do |name|
49
+ value = options.fetch(name)
50
+ validate = :"validate_#{name}!"
51
+ send validate, value if respond_to? validate, true
52
+ [name, value]
53
+ end
54
+ end
55
+
56
+ def validate_document_type!(type)
57
+ return if DOCUMENT_TYPES.include? type
58
+
59
+ raise ArgumentError, "invalid document_type: #{type}"
60
+ end
61
+
62
+ PDF_FILE_SIGNATURE = Base64.encode64("%PDF-")[0..6].freeze
63
+ private_constant :PDF_FILE_SIGNATURE
64
+
65
+ def validate_document_data!(data)
66
+ return if data.start_with? PDF_FILE_SIGNATURE
67
+
68
+ raise ArgumentError, "invalid document_data: should be a base64 encoded pdf file"
69
+ end
70
+ end
71
+ end
72
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tenios
2
4
  module API
3
- VERSION = '0.1.0'.freeze
5
+ VERSION = "1.0.0"
4
6
  end
5
7
  end
data/tenios-api.gemspec CHANGED
@@ -1,34 +1,33 @@
1
- lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'tenios/api/version'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/tenios/api/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'tenios-api'
7
- spec.version = Tenios::API::VERSION
8
- spec.authors = ['carwow Developers']
9
- spec.email = ['developers@carwow.co.uk']
10
- spec.summary = 'Tenios API Client ☎️'
11
- spec.description = 'Get Call Detail Records (CDRs) from Tenios API.'
12
- spec.homepage = 'https://github.com/carwow/tenios-api-ruby'
13
- spec.license = 'MIT'
6
+ spec.name = "tenios-api"
7
+ spec.version = Tenios::API::VERSION
8
+ spec.authors = ["carwow Developers"]
9
+ spec.email = ["developers@carwow.co.uk"]
10
+ spec.summary = "Tenios API Client ☎️"
11
+ spec.description = "Get Call Detail Records (CDRs) from Tenios API."
12
+ spec.homepage = "https://github.com/carwow/tenios-api-ruby"
13
+ spec.license = "MIT"
14
+
15
+ spec.required_ruby_version = Gem::Requirement.new("~> 2.7")
14
16
 
15
- if spec.respond_to?(:metadata)
16
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
17
- else
18
- raise 'RubyGems 2.0 or newer is required to protect against ' \
19
- 'public gem pushes.'
20
- end
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["homepage_uri"] = "#{spec.homepage}/README.md"
20
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
21
21
 
22
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
- end
25
- spec.require_paths = ['lib']
22
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.start_with? "spec" }
23
+ spec.require_paths = ["lib"]
26
24
 
27
- spec.add_dependency 'faraday'
28
- spec.add_dependency 'faraday_middleware'
25
+ spec.add_dependency "faraday", "~> 1.3"
26
+ spec.add_dependency "faraday_middleware", "~> 1.0"
27
+ spec.add_dependency "zeitwerk", "~> 2.4"
29
28
 
30
- spec.add_development_dependency 'bundler'
31
- spec.add_development_dependency 'carwow_rubocop'
32
- spec.add_development_dependency 'rake'
33
- spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency "pry", "~> 0.14"
30
+ spec.add_development_dependency "rake", "~> 13.0"
31
+ spec.add_development_dependency "rspec", "~> 3.10"
32
+ spec.add_development_dependency "standard", "~> 0.12"
34
33
  end
metadata CHANGED
@@ -1,99 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tenios-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - carwow Developers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-21 00:00:00.000000000 Z
11
+ date: 2021-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '1.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: zeitwerk
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
47
+ version: '2.4'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '2.4'
55
55
  - !ruby/object:Gem::Dependency
56
- name: carwow_rubocop
56
+ name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '0.14'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '0.14'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '3.10'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '3.10'
97
+ - !ruby/object:Gem::Dependency
98
+ name: standard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.12'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.12'
97
111
  description: Get Call Detail Records (CDRs) from Tenios API.
98
112
  email:
99
113
  - developers@carwow.co.uk
@@ -105,14 +119,18 @@ files:
105
119
  - ".gitignore"
106
120
  - ".rspec"
107
121
  - ".rubocop.yml"
122
+ - CHANGELOG.md
108
123
  - Gemfile
109
- - Gemfile.lock
110
124
  - LICENSE.txt
111
125
  - README.md
112
126
  - Rakefile
127
+ - bin/console
113
128
  - lib/tenios-api.rb
114
- - lib/tenios/api.rb
129
+ - lib/tenios/api/call_detail_records.rb
115
130
  - lib/tenios/api/client.rb
131
+ - lib/tenios/api/number.rb
132
+ - lib/tenios/api/record_call.rb
133
+ - lib/tenios/api/verification.rb
116
134
  - lib/tenios/api/version.rb
117
135
  - tenios-api.gemspec
118
136
  homepage: https://github.com/carwow/tenios-api-ruby
@@ -120,23 +138,26 @@ licenses:
120
138
  - MIT
121
139
  metadata:
122
140
  allowed_push_host: https://rubygems.org
123
- post_install_message:
141
+ source_code_uri: https://github.com/carwow/tenios-api-ruby
142
+ homepage_uri: https://github.com/carwow/tenios-api-ruby/README.md
143
+ changelog_uri: https://github.com/carwow/tenios-api-ruby/CHANGELOG.md
144
+ post_install_message:
124
145
  rdoc_options: []
125
146
  require_paths:
126
147
  - lib
127
148
  required_ruby_version: !ruby/object:Gem::Requirement
128
149
  requirements:
129
- - - ">="
150
+ - - "~>"
130
151
  - !ruby/object:Gem::Version
131
- version: '0'
152
+ version: '2.7'
132
153
  required_rubygems_version: !ruby/object:Gem::Requirement
133
154
  requirements:
134
155
  - - ">="
135
156
  - !ruby/object:Gem::Version
136
157
  version: '0'
137
158
  requirements: []
138
- rubygems_version: 3.0.2
139
- signing_key:
159
+ rubygems_version: 3.1.4
160
+ signing_key:
140
161
  specification_version: 4
141
162
  summary: Tenios API Client ☎️
142
163
  test_files: []
data/Gemfile.lock DELETED
@@ -1,67 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- tenios-api (0.1.0)
5
- faraday
6
- faraday_middleware
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- ast (2.4.0)
12
- carwow_rubocop (2.1.1)
13
- rubocop (~> 0.58)
14
- rubocop-rspec (~> 1.28)
15
- diff-lcs (1.3)
16
- faraday (0.15.4)
17
- multipart-post (>= 1.2, < 3)
18
- faraday_middleware (0.13.1)
19
- faraday (>= 0.7.4, < 1.0)
20
- jaro_winkler (1.5.2)
21
- multipart-post (2.0.0)
22
- parallel (1.13.0)
23
- parser (2.6.0.0)
24
- ast (~> 2.4.0)
25
- powerpack (0.1.2)
26
- psych (3.1.0)
27
- rainbow (3.0.0)
28
- rake (12.3.2)
29
- rspec (3.8.0)
30
- rspec-core (~> 3.8.0)
31
- rspec-expectations (~> 3.8.0)
32
- rspec-mocks (~> 3.8.0)
33
- rspec-core (3.8.0)
34
- rspec-support (~> 3.8.0)
35
- rspec-expectations (3.8.2)
36
- diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.8.0)
38
- rspec-mocks (3.8.0)
39
- diff-lcs (>= 1.2.0, < 2.0)
40
- rspec-support (~> 3.8.0)
41
- rspec-support (3.8.0)
42
- rubocop (0.65.0)
43
- jaro_winkler (~> 1.5.1)
44
- parallel (~> 1.10)
45
- parser (>= 2.5, != 2.5.1.1)
46
- powerpack (~> 0.1)
47
- psych (>= 3.1.0)
48
- rainbow (>= 2.2.2, < 4.0)
49
- ruby-progressbar (~> 1.7)
50
- unicode-display_width (~> 1.4.0)
51
- rubocop-rspec (1.32.0)
52
- rubocop (>= 0.60.0)
53
- ruby-progressbar (1.10.0)
54
- unicode-display_width (1.4.1)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- bundler
61
- carwow_rubocop
62
- rake
63
- rspec
64
- tenios-api!
65
-
66
- BUNDLED WITH
67
- 1.17.3
data/lib/tenios/api.rb DELETED
@@ -1,6 +0,0 @@
1
- module Tenios
2
- module API
3
- autoload :Version, 'tenios/api/version'
4
- autoload :Client, 'tenios/api/client'
5
- end
6
- end