ctm 0.4.2 → 0.4.4

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.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ctm"
3
- s.version = "0.4.2"
3
+ s.version = "0.4.4"
4
4
  s.authors = ["CallTrackingMetrics", "Todd Fisher"]
5
5
  s.email = "info@calltrackingmetrics.com"
6
6
  s.files = `git ls-files`.split("\n")
@@ -0,0 +1,26 @@
1
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__),"..", "lib")))
2
+ require 'ctm'
3
+
4
+ access_token = CTM::Auth.authenticate(ENV['CTM_TOKEN'], ENV['CTM_SECRET'])
5
+ account = access_token.accounts.first
6
+
7
+ puts "all messages"
8
+ account.messages.each do|message|
9
+ if message.direction == 'outbound'
10
+ puts "Sent message to #{message.to} from #{message.from} -> #{message.body}"
11
+ elsif message.direction == 'inbound'
12
+ puts "Received message from #{message.from} to #{message.to} -> #{message.body}"
13
+ end
14
+ end
15
+
16
+ puts "Received messages"
17
+ # or just the messages we've received
18
+ account.messages(:direction => 'inbound').each do|message|
19
+ puts "Received message from #{message.from} to #{message.to} -> #{message.body}"
20
+ end
21
+
22
+
23
+ # Send a message
24
+ # export TO_NUMBER='+1dddddddddd'
25
+ # export FROM_NUMBER='TPNC3C4B23ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'
26
+ account.messages.send_message(ENV["TO_NUMBER"], ENV["FROM_NUMBER"], "Hello CallTrackingMetrics")
data/lib/ctm.rb CHANGED
@@ -18,3 +18,5 @@ require 'ctm/source'
18
18
  require 'ctm/token'
19
19
  require 'ctm/user'
20
20
  require 'ctm/webhook'
21
+ require 'ctm/message'
22
+ require 'ctm/message_list'
@@ -5,11 +5,14 @@ module CTM
5
5
 
6
6
  def initialize(data, token=nil)
7
7
  super(data, token)
8
+ puts data.inspect
8
9
  @id = data['id']
9
10
  @name = data['name']
10
11
  @status = data['status']
11
12
  @stats = data['stats']['calls']
12
- @balance = "$" + (data['balance']['cents'].to_i / 100).to_s + "." + (data['balance']['cents'].to_i % 100).to_s
13
+ if data['balance']
14
+ @balance = "$" + (data['balance']['cents'].to_i / 100).to_s + "." + (data['balance']['cents'].to_i % 100).to_s
15
+ end
13
16
  end
14
17
 
15
18
  def numbers(options={})
@@ -36,5 +39,9 @@ module CTM
36
39
  CTM::List.new('Call', options.merge(account_id: @id), @token)
37
40
  end
38
41
 
42
+ def messages(options={})
43
+ CTM::MessageList.new(options.merge(account_id: @id), @token)
44
+ end
45
+
39
46
  end
40
47
  end
@@ -1,5 +1,16 @@
1
1
  module CTM
2
2
  class Base
3
+ class Location
4
+ attr_reader :street, :city, :state, :country, :zip
5
+ def initialize(street, city, state, country, zip)
6
+ @street = street
7
+ @city = city
8
+ @state = state
9
+ @country = country
10
+ @zip = zip
11
+ end
12
+ end
13
+
3
14
  include HTTParty
4
15
  base_uri ENV["CTM_URL"] || "api.calltrackingmetrics.com"
5
16
 
@@ -0,0 +1,21 @@
1
+ module CTM
2
+ class Message < Base
3
+ attr_reader :id, :account_id, :body, :callerid, :from, :to, :from_location, :to_location, :source_id, :direction
4
+
5
+ def initialize(data, token=nil)
6
+ super(data, token)
7
+ @id = data['id']
8
+ @account_id = data['account_id']
9
+ @body = data['body']
10
+ @to = data['to_number']
11
+ @from = data['from_number']
12
+ @callerid = data['callerid']
13
+ @from_location = CTM::Base::Location.new(nil, data['from_city'], data['from_state'], data['from_country'], data['from_zip'])
14
+ @to_location = CTM::Base::Location.new(nil, data['to_city'], data['to_state'], data['to_country'], data['to_zip'])
15
+ @source_id = data['tracking_source_id']
16
+ @direction = data['direction']
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,18 @@
1
+ module CTM
2
+ class MessageList < List
3
+ def initialize(options={}, token=nil)
4
+ super('Message', options, token)
5
+ @list_type_path = "accounts/#{@account_id}/sms"
6
+ end
7
+
8
+ def send_message(to, from, message)
9
+ options = {:to => to, :from => from, :msg => message}
10
+ path_str = "/api/v1/#{@list_type_path}.json"
11
+ res = self.class.post(path_str, :body => options.merge(:auth_token => @token))
12
+ data = res.parsed_response
13
+ puts data.inspect
14
+ (data["status"] == "processing")
15
+ end
16
+
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ctm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-16 00:00:00.000000000 Z
13
+ date: 2013-08-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: phony
@@ -145,6 +145,7 @@ files:
145
145
  - examples/manage_users.rb
146
146
  - examples/manage_webhooks.rb
147
147
  - examples/record_sale.rb
148
+ - examples/sms.rb
148
149
  - lib/ctm.rb
149
150
  - lib/ctm/account.rb
150
151
  - lib/ctm/auth.rb
@@ -153,6 +154,8 @@ files:
153
154
  - lib/ctm/call.rb
154
155
  - lib/ctm/error.rb
155
156
  - lib/ctm/list.rb
157
+ - lib/ctm/message.rb
158
+ - lib/ctm/message_list.rb
156
159
  - lib/ctm/number.rb
157
160
  - lib/ctm/number_list.rb
158
161
  - lib/ctm/receiving_number.rb