ctm 0.5.1 → 0.5.3

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
- 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