tenios-api 0.1.0 → 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 +4 -4
- data/.circleci/config.yml +23 -43
- data/.gitignore +1 -0
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +3 -1
- data/README.md +55 -3
- data/Rakefile +4 -1
- data/bin/console +7 -0
- data/lib/tenios-api.rb +9 -1
- data/lib/tenios/api/call_detail_records.rb +55 -0
- data/lib/tenios/api/client.rb +32 -44
- data/lib/tenios/api/number.rb +41 -0
- data/lib/tenios/api/record_call.rb +21 -0
- data/lib/tenios/api/verification.rb +72 -0
- data/lib/tenios/api/version.rb +3 -1
- data/tenios-api.gemspec +26 -27
- metadata +58 -37
- data/Gemfile.lock +0 -67
- data/lib/tenios/api.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8f4b1e8779c3b969fddafc92b7291a802319c6f581097510f59749708eadf70
|
4
|
+
data.tar.gz: edcf7cc2aad2bac65b6e088e34f8c735a79309f6e36adf676433a78fa3c75967
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90e98323495cbc63cd7bf8f024ee0b245dd3ee4d2c9538beeacf01aae55a1527a25d4f5a7b02e15741fdb5a74bde3074f1740ebce92351764f45df0f07b9ce9b
|
7
|
+
data.tar.gz: f16d05a78e70aee4af849720d0a30b2c7caeac4a2d315ae696b7c10cc25075d4c4ab7a49ab18554b9552891f062556ba2f8c1c0364331350289dfcbfaae6da94
|
data/.circleci/config.yml
CHANGED
@@ -1,54 +1,34 @@
|
|
1
|
-
|
2
|
-
image: carwow/ruby-ci:2.5.3
|
3
|
-
|
4
|
-
version: 2
|
1
|
+
version: 2.1
|
5
2
|
|
6
3
|
jobs:
|
7
|
-
|
8
|
-
|
4
|
+
test:
|
5
|
+
parameters:
|
6
|
+
ruby_version:
|
7
|
+
type: string
|
9
8
|
docker:
|
10
|
-
-
|
9
|
+
- image: cimg/ruby:<< parameters.ruby_version >>
|
11
10
|
steps:
|
12
11
|
- checkout
|
13
12
|
- restore_cache:
|
14
|
-
keys:
|
15
|
-
- bundle
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
22
|
-
paths: [~/
|
23
|
-
-
|
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
|
-
|
28
|
+
test:
|
49
29
|
jobs:
|
50
|
-
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
30
|
+
- test:
|
31
|
+
matrix:
|
32
|
+
parameters:
|
33
|
+
ruby_version:
|
34
|
+
- "2.7"
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Tenios API Client ☎️
|
2
2
|
|
3
|
-
|
3
|
+
HTTP client for [Tenios API].
|
4
4
|
|
5
|
-
[Tenios API]: https://www.tenios.de/
|
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
|
-
|
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
data/bin/console
ADDED
data/lib/tenios-api.rb
CHANGED
@@ -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
|
data/lib/tenios/api/client.rb
CHANGED
@@ -1,63 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
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
|
-
|
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
|
13
|
-
|
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
|
24
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
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
|
-
|
50
|
-
|
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
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
data/lib/tenios/api/version.rb
CHANGED
data/tenios-api.gemspec
CHANGED
@@ -1,34 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
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
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
10
|
-
spec.summary
|
11
|
-
spec.description
|
12
|
-
spec.homepage
|
13
|
-
spec.license
|
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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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 =
|
23
|
-
|
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
|
28
|
-
spec.add_dependency
|
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
|
31
|
-
spec.add_development_dependency
|
32
|
-
spec.add_development_dependency
|
33
|
-
spec.add_development_dependency
|
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:
|
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:
|
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: '
|
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: '
|
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:
|
42
|
+
name: zeitwerk
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
type: :
|
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: '
|
54
|
+
version: '2.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
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: '
|
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: '
|
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
|
-
|
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: '
|
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.
|
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
|