tms_client 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
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