ctm 0.5.1 → 0.5.3
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 +5 -5
- data/Rakefile +11 -0
- data/ctm.gemspec +4 -5
- data/examples/buy_numbers.rb +3 -2
- data/lib/ctm.rb +2 -0
- data/lib/ctm/account.rb +4 -0
- data/lib/ctm/list.rb +10 -2
- data/lib/ctm/number.rb +11 -0
- data/lib/ctm/number_list.rb +6 -2
- data/lib/ctm/source.rb +7 -5
- data/lib/ctm/target_number.rb +26 -0
- data/lib/ctm/target_number_list.rb +39 -0
- metadata +14 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a5bf6975570c7a8e4a66d50ae0fb76f6b78d25c59dbf2967e2f9d372f0ca378f
|
4
|
+
data.tar.gz: ecd4bee8a9179fb596296667b0763d6c49edd27a87a73002850927e5b72871ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac313465c828bc098629e95916ee133e93f812ef800eefba8db692329d24d0afe8feb184e5ff5a4a112deb4f46b17a389c6849be6a00462a604935a426110c38
|
7
|
+
data.tar.gz: fa358e569a12ddc56ffcdaf96f54bbc4818897b6ed2021edea7212a605613463a42052402ed9d9e8937e47c27c251eaecc750a4d9addc6b46814b199e4fb2f3c
|
data/Rakefile
CHANGED
@@ -8,3 +8,14 @@ Rake::TestTask.new(:test) do |t|
|
|
8
8
|
t.test_files = FileList['test/*_test.rb']
|
9
9
|
t.verbose = false
|
10
10
|
end
|
11
|
+
|
12
|
+
desc 'Build gem'
|
13
|
+
task :package do
|
14
|
+
require 'rubygems/package'
|
15
|
+
spec_source = File.read File.join(File.dirname(__FILE__),'ctm.gemspec')
|
16
|
+
spec = nil
|
17
|
+
# see: http://gist.github.com/16215
|
18
|
+
Thread.new { spec = eval("#{spec_source}") }.join
|
19
|
+
spec.validate
|
20
|
+
Gem::Package.build(spec)
|
21
|
+
end
|
data/ctm.gemspec
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "ctm"
|
3
|
-
s.version = "0.5.
|
4
|
-
s.authors = ["CallTrackingMetrics", "Todd Fisher", "Morgen Peschke"]
|
3
|
+
s.version = "0.5.3"
|
4
|
+
s.authors = ["CallTrackingMetrics", "Todd Fisher", "Morgen Peschke", "Bob Graw"]
|
5
5
|
s.email = "info@calltrackingmetrics.com"
|
6
6
|
s.files = `git ls-files`.split("\n")
|
7
7
|
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
8
8
|
s.homepage = "http://github.com/calltracking/ctm-ruby"
|
9
9
|
s.require_path = "lib"
|
10
|
-
s.rubygems_version = "1.3.5"
|
11
10
|
s.summary = "API Library for CallTrackingMetrics"
|
12
11
|
s.add_runtime_dependency "phony"
|
13
12
|
s.add_runtime_dependency "httparty"
|
14
13
|
s.add_runtime_dependency "activesupport"
|
15
|
-
s.add_development_dependency "rack"
|
14
|
+
s.add_development_dependency "rack"
|
16
15
|
s.add_development_dependency "mocha"
|
17
|
-
s.add_development_dependency 'fakeweb'
|
16
|
+
s.add_development_dependency 'fakeweb'
|
18
17
|
s.add_development_dependency "rake"
|
19
18
|
end
|
data/examples/buy_numbers.rb
CHANGED
@@ -22,8 +22,9 @@ availble_numbers.each do|num|
|
|
22
22
|
end
|
23
23
|
number_to_buy = availble_numbers.first
|
24
24
|
|
25
|
-
#
|
26
|
-
|
25
|
+
# gem 'ctm-ruby', :git => "git@github.com:calltracking/ctm-ruby.git", :branch => "master"
|
26
|
+
number = account.numbers.buy(number_to_buy, {test:1})
|
27
|
+
puts "purchased: #{number.formatted} #{number.number}"
|
27
28
|
|
28
29
|
|
29
30
|
# look for a UK local number
|
data/lib/ctm.rb
CHANGED
data/lib/ctm/account.rb
CHANGED
@@ -23,6 +23,10 @@ module CTM
|
|
23
23
|
CTM::List.new('ReceivingNumber', options.merge(account_id: @id), @token)
|
24
24
|
end
|
25
25
|
|
26
|
+
def target_numbers(options={})
|
27
|
+
CTM::List.new('TargetNumber', options.merge(account_id: @id), @token)
|
28
|
+
end
|
29
|
+
|
26
30
|
def sources(options={})
|
27
31
|
CTM::List.new('Source', options.merge(account_id: @id), @token)
|
28
32
|
end
|
data/lib/ctm/list.rb
CHANGED
@@ -72,7 +72,7 @@ module CTM
|
|
72
72
|
@filters = options
|
73
73
|
|
74
74
|
self.page = 1
|
75
|
-
|
75
|
+
load_records
|
76
76
|
end
|
77
77
|
|
78
78
|
def get(recordid, options={})
|
@@ -110,7 +110,15 @@ module CTM
|
|
110
110
|
def map_data(data)
|
111
111
|
@total_entries = data['total_entries']
|
112
112
|
@total_pages = data['total_pages']
|
113
|
-
|
113
|
+
|
114
|
+
# special case for target numbers
|
115
|
+
if @list_token_type == 'target_numbers'
|
116
|
+
list_name = 'numbers'
|
117
|
+
else
|
118
|
+
list_name = @list_token_type
|
119
|
+
end
|
120
|
+
|
121
|
+
@objects = (data[list_name]||[]).map {|obj|
|
114
122
|
@object_klass.new(obj, @token)
|
115
123
|
}
|
116
124
|
end
|
data/lib/ctm/number.rb
CHANGED
@@ -14,10 +14,21 @@ module CTM
|
|
14
14
|
@routing = data['routing']
|
15
15
|
end
|
16
16
|
|
17
|
+
def save
|
18
|
+
options = {
|
19
|
+
:name => @name,
|
20
|
+
}
|
21
|
+
super(options)
|
22
|
+
end
|
23
|
+
|
17
24
|
def receiving_numbers(options={})
|
18
25
|
CTM::ReceivingNumberList.new(options.merge(:account_id => @account_id, :number_id => @id), @token)
|
19
26
|
end
|
20
27
|
|
28
|
+
def target_numbers(options={})
|
29
|
+
CTM::TargetNumberList.new(options.merge(:account_id => @account_id, :number_id => @id), @token)
|
30
|
+
end
|
31
|
+
|
21
32
|
def source
|
22
33
|
end
|
23
34
|
|
data/lib/ctm/number_list.rb
CHANGED
@@ -30,12 +30,16 @@ module CTM
|
|
30
30
|
end
|
31
31
|
|
32
32
|
# buy number with the digits
|
33
|
-
def buy(digits)
|
33
|
+
def buy(digits, options={})
|
34
34
|
path_str = "/api/v1/#{@list_type_path}.json"
|
35
|
-
res = self.class.post(path_str, :body => {:phone_number => digits}.merge(
|
35
|
+
res = self.class.post(path_str, :body => {:phone_number => digits}.merge(options).
|
36
|
+
merge(:auth_token => @token))
|
36
37
|
if res && res['status'] == 'success'
|
37
38
|
CTM::Number.new(res['number'], @token)
|
38
39
|
else
|
40
|
+
options = {}
|
41
|
+
options[:test] = 1 if Rails.env != 'production'
|
42
|
+
number = account.numbers.buy(number_to_buy, options)
|
39
43
|
puts res.inspect
|
40
44
|
raise CTM::Error::Buy.new(res["reason"])
|
41
45
|
end
|
data/lib/ctm/source.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module CTM
|
2
2
|
class Source < Base
|
3
3
|
attr_reader :id, :account_id
|
4
|
-
attr_accessor :name, :referring_url, :landing_url, :position, :online
|
4
|
+
attr_accessor :name, :referring_url, :landing_url, :position, :online, :crm_tag
|
5
5
|
|
6
6
|
def initialize(data, token=nil)
|
7
7
|
super(data, token)
|
@@ -12,15 +12,17 @@ module CTM
|
|
12
12
|
@landing_url = data['landing_url']
|
13
13
|
@position = data['position']
|
14
14
|
@online = data['online']
|
15
|
+
@crm_tag = data['crm_tag']
|
15
16
|
end
|
16
17
|
|
17
18
|
def save
|
18
19
|
options = {
|
19
|
-
:name
|
20
|
-
:position
|
21
|
-
:online
|
20
|
+
:name => @name,
|
21
|
+
:position => @position,
|
22
|
+
:online => @online,
|
22
23
|
:referring_url => @referring_url,
|
23
|
-
:landing_url
|
24
|
+
:landing_url => @landing_url,
|
25
|
+
:crm_tag => @crm_tag
|
24
26
|
}
|
25
27
|
super(options)
|
26
28
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module CTM
|
2
|
+
class TargetNumber < Base
|
3
|
+
attr_reader :id, :account_id
|
4
|
+
attr_accessor :name, :number, :display_number, :exact, :tracking_numbers
|
5
|
+
|
6
|
+
def initialize(data, token=nil)
|
7
|
+
super(data, token)
|
8
|
+
@id = data['id']
|
9
|
+
@account_id = data['account_id']
|
10
|
+
@name = data['name']
|
11
|
+
@number = data['number']
|
12
|
+
@display_number = data['display_number']
|
13
|
+
@exact = data['exact']
|
14
|
+
@tracking_numbers = data['tracking_numbers']
|
15
|
+
end
|
16
|
+
|
17
|
+
def save
|
18
|
+
options = {
|
19
|
+
:name => @name,
|
20
|
+
:number => @number
|
21
|
+
}
|
22
|
+
super(options)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module CTM
|
2
|
+
class TargetNumberList < List
|
3
|
+
def initialize(options={}, token=nil)
|
4
|
+
super('TargetNumber', options, token)
|
5
|
+
@account_id = options[:account_id]
|
6
|
+
@number_id = options[:number_id]
|
7
|
+
if @number_id && @account_id
|
8
|
+
@list_type_path = "accounts/#{@account_id}/numbers/#{@number_id}/#{@list_token_type}"
|
9
|
+
elsif @account_id
|
10
|
+
@list_type_path = "accounts/#{@account_id}/#{@list_token_type}"
|
11
|
+
else
|
12
|
+
@list_type_path = @list_token_type
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def add(target_number)
|
17
|
+
path_str = "/api/v1/#{@list_type_path}/#{target_number.id}/add.json"
|
18
|
+
res = self.class.post(path_str, :body => {}.merge(:auth_token => @token))
|
19
|
+
if res && res['status'] == 'success'
|
20
|
+
CTM::TargetNumber.new(res['target_number'], @token)
|
21
|
+
else
|
22
|
+
puts res.inspect
|
23
|
+
raise CTM::Error::Add.new(res["reason"])
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def rem(target_number)
|
28
|
+
path_str = "/api/v1/#{@list_type_path}/#{target_number.id}/rem.json"
|
29
|
+
res = self.class.delete(path_str, :body => {}.merge(:auth_token => @token))
|
30
|
+
if res && res['status'] == 'success'
|
31
|
+
CTM::Number.new(res['receiving_number'], @token)
|
32
|
+
else
|
33
|
+
puts res.inspect
|
34
|
+
raise CTM::Error::Add.new(res["reason"])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ctm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CallTrackingMetrics
|
8
8
|
- Todd Fisher
|
9
9
|
- Morgen Peschke
|
10
|
+
- Bob Graw
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2020-02-03 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: phony
|
@@ -58,16 +59,16 @@ dependencies:
|
|
58
59
|
name: rack
|
59
60
|
requirement: !ruby/object:Gem::Requirement
|
60
61
|
requirements:
|
61
|
-
- - "
|
62
|
+
- - ">="
|
62
63
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
64
|
+
version: '0'
|
64
65
|
type: :development
|
65
66
|
prerelease: false
|
66
67
|
version_requirements: !ruby/object:Gem::Requirement
|
67
68
|
requirements:
|
68
|
-
- - "
|
69
|
+
- - ">="
|
69
70
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
71
|
+
version: '0'
|
71
72
|
- !ruby/object:Gem::Dependency
|
72
73
|
name: mocha
|
73
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,16 +87,16 @@ dependencies:
|
|
86
87
|
name: fakeweb
|
87
88
|
requirement: !ruby/object:Gem::Requirement
|
88
89
|
requirements:
|
89
|
-
- - "
|
90
|
+
- - ">="
|
90
91
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
92
|
+
version: '0'
|
92
93
|
type: :development
|
93
94
|
prerelease: false
|
94
95
|
version_requirements: !ruby/object:Gem::Requirement
|
95
96
|
requirements:
|
96
|
-
- - "
|
97
|
+
- - ">="
|
97
98
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
99
|
+
version: '0'
|
99
100
|
- !ruby/object:Gem::Dependency
|
100
101
|
name: rake
|
101
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +149,8 @@ files:
|
|
148
149
|
- lib/ctm/receiving_number_list.rb
|
149
150
|
- lib/ctm/sale.rb
|
150
151
|
- lib/ctm/source.rb
|
152
|
+
- lib/ctm/target_number.rb
|
153
|
+
- lib/ctm/target_number_list.rb
|
151
154
|
- lib/ctm/token.rb
|
152
155
|
- lib/ctm/user.rb
|
153
156
|
- lib/ctm/webhook.rb
|
@@ -169,8 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
172
|
- !ruby/object:Gem::Version
|
170
173
|
version: '0'
|
171
174
|
requirements: []
|
172
|
-
|
173
|
-
rubygems_version: 2.2.2
|
175
|
+
rubygems_version: 3.0.3
|
174
176
|
signing_key:
|
175
177
|
specification_version: 4
|
176
178
|
summary: API Library for CallTrackingMetrics
|