tms_client 0.5.1 → 0.5.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 28f2987f06ad23d327d06b2d38eb054259045dd6
4
+ data.tar.gz: 76870cb343e8a97e0303908a24191cea6bb9915b
5
+ SHA512:
6
+ metadata.gz: 4d2e771630e5b9f77af2edf27a5ed9276d1ebced7d8f47cd74ff660088aa09dc03176cb73a26d525e41be72171e18b293852519abf827c88812670a36a9c5860
7
+ data.tar.gz: d0263120ec36f712428cc97de967153c4706ee5610560cf8cabfecf5680e1bc8f4bbd7bf9fae02f61b4b275f05b29cabdeade2b212a82b267eec9d5370d39c17
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/govdelivery/tms_client.svg?branch=master)](https://travis-ci.org/govdelivery/tms_client)
2
+
1
3
  TMS Client
2
4
  ===========
3
5
  This is a reference Ruby client to interact with the GovDelivery TMS REST API.
@@ -22,6 +24,7 @@ Connecting
22
24
  Loading an instance of `TMS::Client` will automatically connect to the API to query the available resources for your account.
23
25
 
24
26
  ```ruby
27
+ # default api root endpoint is https://tms.govdelivery.com
25
28
  client = TMS::Client.new('auth_token', :api_root => 'https://stage-tms.govdelivery.com')
26
29
  ```
27
30
 
@@ -111,6 +114,29 @@ alert.post # true
111
114
  alert.ipaws_response # { "identifier"=>"CAP12-TEST-1397743203", "statuses"=> [{"CHANNELNAME"=>"CAPEXCH" ... }]}
112
115
  ```
113
116
 
117
+
118
+ Webhooks
119
+ -------
120
+ ### POST to a URL when a recipient is blacklisted (i.e. to remove from your list)
121
+
122
+
123
+ ```ruby
124
+ webhook = client.webhooks.build(:url=>'http://your.url', :event_type=>'blacklisted')
125
+ webhook.post # true
126
+ ```
127
+
128
+ POSTs will include in the body the following attributes:
129
+
130
+ attribute | description
131
+ ------------- | -------------
132
+ message_type | 'sms', 'email', or 'voice'
133
+ status: | message state
134
+ recipient_url | recipient URL
135
+ messsage_url | message URL
136
+ error_message | (failures only)
137
+ completed_at | (sent or failed recipients only)
138
+
139
+
114
140
  Metrics
115
141
  -------
116
142
  ### Viewing recipients that clicked on a link in an email
@@ -71,7 +71,7 @@ class TMS::Client
71
71
  def delete(href)
72
72
  response = raw_connection.delete(href)
73
73
  case response.status
74
- when 200
74
+ when 200...299
75
75
  return response
76
76
  else
77
77
  raise TMS::Request::Error.new(response.status)
@@ -5,6 +5,8 @@ module TMS::InstanceResource
5
5
  base.send(:include, InstanceMethods)
6
6
  end
7
7
 
8
+ attr_accessor :response
9
+
8
10
  module ClassMethods
9
11
  ##
10
12
  # Writeable attributes are sent on POST/PUT.
@@ -149,6 +151,7 @@ module TMS::InstanceResource
149
151
  end
150
152
 
151
153
  def process_response(response, method)
154
+ self.response = response
152
155
  error_class = TMS::Errors.const_get("Invalid#{method.to_s.capitalize}")
153
156
  case response.status
154
157
  when 204
@@ -83,3 +83,7 @@ end
83
83
  class TMS::IpawsNwemAreas
84
84
  include TMS::CollectionResource
85
85
  end
86
+
87
+ class TMS::Webhooks
88
+ include TMS::CollectionResource
89
+ end
@@ -0,0 +1,20 @@
1
+ module TMS #:nodoc:
2
+ # A Webhook gets invoked when a recipient enters a queued or final state
3
+ #
4
+ # @attr url [String] The URL to POST webhooks to
5
+ # @attr event_type 'sending', 'inconclusive', 'blacklisted', 'sent', 'canceled', or 'failed'
6
+ #
7
+ # @example
8
+ # webhook = client.webhooks.build(:url => 'http://your.url', :event_type => 'failed')
9
+ # webhook.post
10
+ # webhook.get
11
+ class Webhook
12
+ include InstanceResource
13
+
14
+ # @!parse attr_accessor :url, :event_type
15
+ writeable_attributes :url, :event_type
16
+
17
+ # @!parse attr_reader :created_at, :updated_at
18
+ readonly_attributes :created_at, :updated_at
19
+ end
20
+ end
@@ -1,10 +1,6 @@
1
1
  module TMS::Util
2
2
  module HalLinkParser
3
3
 
4
- #def self.included(base)
5
- # base.send(:include, TMS::CoreExt)
6
- #end
7
-
8
4
  def parse_links(_links)
9
5
  @resources = {}
10
6
  return if _links.nil?
@@ -1,3 +1,3 @@
1
1
  module TMS #:nodoc:
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
data/lib/tms_client.rb CHANGED
@@ -39,3 +39,4 @@ require 'tms_client/resource/ipaws_cog_profile'
39
39
  require 'tms_client/resource/ipaws_nwem_authorization'
40
40
  require 'tms_client/resource/ipaws_nwem_area'
41
41
  require 'tms_client/resource/ipaws_alert'
42
+ require 'tms_client/resource/webhook'
metadata CHANGED
@@ -1,65 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tms_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
5
- prerelease:
4
+ version: 0.5.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - GovDelivery
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-08-06 00:00:00.000000000 Z
11
+ date: 2014-09-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: faraday
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: faraday_middleware
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- description: ! "A reference implementation, written in Ruby, \n to
55
+ description: "A reference implementation, written in Ruby, \n to
63
56
  interact with GovDelivery's TMS API. The client is \n compatible
64
57
  with Ruby 1.9 and 2.0. "
65
58
  email:
@@ -81,7 +74,17 @@ files:
81
74
  - Gemfile
82
75
  - README.md
83
76
  - Rakefile
84
- - tms_client.gemspec
77
+ - bin/autospec
78
+ - bin/htmldiff
79
+ - bin/ldiff
80
+ - bin/rake
81
+ - bin/redcarpet
82
+ - bin/rspec
83
+ - bin/tt
84
+ - bin/yard
85
+ - bin/yardoc
86
+ - bin/yri
87
+ - lib/tms_client.rb
85
88
  - lib/tms_client/base.rb
86
89
  - lib/tms_client/client.rb
87
90
  - lib/tms_client/collection_resource.rb
@@ -114,10 +117,10 @@ files:
114
117
  - lib/tms_client/resource/recipient.rb
115
118
  - lib/tms_client/resource/sms_message.rb
116
119
  - lib/tms_client/resource/voice_message.rb
120
+ - lib/tms_client/resource/webhook.rb
117
121
  - lib/tms_client/util/core_ext.rb
118
122
  - lib/tms_client/util/hal_link_parser.rb
119
123
  - lib/tms_client/version.rb
120
- - lib/tms_client.rb
121
124
  - spec/client_spec.rb
122
125
  - spec/command_types_spec.rb
123
126
  - spec/email_message_spec.rb
@@ -138,45 +141,29 @@ files:
138
141
  - spec/tms_client_spec.rb
139
142
  - spec/voice_message_spec.rb
140
143
  - spec/voice_messages_spec.rb
141
- - bin/autospec
142
- - bin/htmldiff
143
- - bin/ldiff
144
- - bin/rake
145
- - bin/redcarpet
146
- - bin/rspec
147
- - bin/tt
148
- - bin/yard
149
- - bin/yardoc
150
- - bin/yri
144
+ - tms_client.gemspec
151
145
  homepage: http://govdelivery.com
152
146
  licenses: []
147
+ metadata: {}
153
148
  post_install_message:
154
149
  rdoc_options: []
155
150
  require_paths:
156
151
  - lib
157
152
  required_ruby_version: !ruby/object:Gem::Requirement
158
- none: false
159
153
  requirements:
160
- - - ! '>='
154
+ - - ">="
161
155
  - !ruby/object:Gem::Version
162
156
  version: '0'
163
- segments:
164
- - 0
165
- hash: -3231966882544892365
166
157
  required_rubygems_version: !ruby/object:Gem::Requirement
167
- none: false
168
158
  requirements:
169
- - - ! '>='
159
+ - - ">="
170
160
  - !ruby/object:Gem::Version
171
161
  version: '0'
172
- segments:
173
- - 0
174
- hash: -3231966882544892365
175
162
  requirements: []
176
163
  rubyforge_project:
177
- rubygems_version: 1.8.23.2
164
+ rubygems_version: 2.2.2
178
165
  signing_key:
179
- specification_version: 3
166
+ specification_version: 4
180
167
  summary: A ruby client to interact with the GovDelivery TMS REST API.
181
168
  test_files:
182
169
  - spec/client_spec.rb