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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2b1ea79c8fdbf2525198b6d01ff0443e35395ab6
4
- data.tar.gz: c52f7e65bb292c63b6cbfe4d03c31d113b15c639
2
+ SHA256:
3
+ metadata.gz: a5bf6975570c7a8e4a66d50ae0fb76f6b78d25c59dbf2967e2f9d372f0ca378f
4
+ data.tar.gz: ecd4bee8a9179fb596296667b0763d6c49edd27a87a73002850927e5b72871ee
5
5
  SHA512:
6
- metadata.gz: 4480e84f64284c12cd954ae2f35ada4b15d610b618343c1a6bedd20b64e97abd82296409275111acac1a3a8a869108465410c6bd14d00fa4a6b53624976dea49
7
- data.tar.gz: 3768d4e9eaaa4b6e962c78fee1855e62f90f667a4b435a20c6e8cdff8f34b7afa1d3ddc8fa7bd219499bef0cac7769171af3099a84f5df955cba8d61a699184c
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
@@ -1,19 +1,18 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ctm"
3
- s.version = "0.5.1"
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", '~> 1.3.0'
14
+ s.add_development_dependency "rack"
16
15
  s.add_development_dependency "mocha"
17
- s.add_development_dependency 'fakeweb', '~> 1.3.0'
16
+ s.add_development_dependency 'fakeweb'
18
17
  s.add_development_dependency "rake"
19
18
  end
@@ -22,8 +22,9 @@ availble_numbers.each do|num|
22
22
  end
23
23
  number_to_buy = availble_numbers.first
24
24
 
25
- #number = account.numbers.buy("+15005550006")
26
- #puts "purchased: #{number.formatted} #{number.number}"
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
@@ -13,6 +13,8 @@ require 'ctm/number'
13
13
  require 'ctm/number_list'
14
14
  require 'ctm/receiving_number'
15
15
  require 'ctm/receiving_number_list'
16
+ require 'ctm/target_number'
17
+ require 'ctm/target_number_list'
16
18
  require 'ctm/sale'
17
19
  require 'ctm/source'
18
20
  require 'ctm/token'
@@ -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
@@ -72,7 +72,7 @@ module CTM
72
72
  @filters = options
73
73
 
74
74
  self.page = 1
75
- self
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
- @objects = (data[@list_token_type]||[]).map {|obj|
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
@@ -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
 
@@ -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(:auth_token => @token))
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
@@ -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 => @name,
20
- :position => @position,
21
- :online => @online,
20
+ :name => @name,
21
+ :position => @position,
22
+ :online => @online,
22
23
  :referring_url => @referring_url,
23
- :landing_url => @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.1
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: 2015-01-14 00:00:00.000000000 Z
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: 1.3.0
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: 1.3.0
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: 1.3.0
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: 1.3.0
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
- rubyforge_project:
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