createsend 3.1.1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTING.md +8 -0
- data/Gemfile.lock +1 -1
- data/HISTORY.md +4 -0
- data/README.md +3 -6
- data/lib/createsend/createsend.rb +27 -0
- data/lib/createsend/version.rb +1 -1
- data/test/createsend_test.rb +11 -0
- data/test/fixtures/external_session.json +3 -0
- metadata +5 -2
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Guidelines for contributing
|
2
|
+
|
3
|
+
1. [Fork the repository](https://help.github.com/articles/fork-a-repo).
|
4
|
+
2. [Create a topic branch](http://learn.github.com/p/branching.html).
|
5
|
+
3. Make your changes, including tests for your changes which maintain [coverage](https://coveralls.io/r/campaignmonitor/createsend-ruby).
|
6
|
+
4. Ensure that all tests pass, by running `bundle exec rake`. The [Travis CI build](https://travis-ci.org/campaignmonitor/createsend-ruby) runs on Ruby `2.0.0`, `1.9.3`, `1.9.2`, `1.8.7`, and `ree`.
|
7
|
+
5. It should go without saying, but do not increment the version number in your commits.
|
8
|
+
6. [Submit a pull request](https://help.github.com/articles/using-pull-requests).
|
data/Gemfile.lock
CHANGED
data/HISTORY.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# createsend-ruby history
|
2
2
|
|
3
|
+
## v3.2.0 - 15 Apr, 2013
|
4
|
+
|
5
|
+
* Added support for [single sign on](http://www.campaignmonitor.com/api/account/#single_sign_on) which allows initiation of external login sessions to Campaign Monitor.
|
6
|
+
|
3
7
|
## v3.1.1 - 10 Apr, 2013
|
4
8
|
|
5
9
|
* Fixed a bug occurring sometimes when refreshing OAuth access tokens, because of a URL encoding issue.
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# createsend
|
2
2
|
[![Build Status](https://secure.travis-ci.org/campaignmonitor/createsend-ruby.png)][travis] [![Coverage Status](https://coveralls.io/repos/campaignmonitor/createsend-ruby/badge.png?branch=master)][coveralls] [![Dependency Status](https://gemnasium.com/campaignmonitor/createsend-ruby.png)][gemnasium] [![Gem Version](https://badge.fury.io/rb/createsend.png)][gembadge]
|
3
3
|
|
4
|
-
A
|
4
|
+
A Ruby library which implements the complete functionality of the [Campaign Monitor API](http://www.campaignmonitor.com/api/).
|
5
5
|
|
6
6
|
[travis]: http://travis-ci.org/campaignmonitor/createsend-ruby
|
7
7
|
[coveralls]: https://coveralls.io/r/campaignmonitor/createsend-ruby
|
@@ -208,8 +208,5 @@ end
|
|
208
208
|
Full documentation is hosted by [RubyDoc.info](http://rubydoc.info/gems/createsend/frames).
|
209
209
|
|
210
210
|
## Contributing
|
211
|
-
|
212
|
-
|
213
|
-
3. Ensure that the build passes, by running `bundle exec rake` (CI runs on: `2.0.0`, `1.9.3`, `1.9.2`, `1.8.7`, and `ree`)
|
214
|
-
4. It should go without saying, but do not increment the version number in your commits.
|
215
|
-
5. Submit a pull request.
|
211
|
+
|
212
|
+
Please check the [guidelines for contributing](https://github.com/campaignmonitor/createsend-ruby/blob/master/CONTRIBUTING.md) to this repository.
|
@@ -183,6 +183,33 @@ module CreateSend
|
|
183
183
|
Hashie::Mash.new(response)
|
184
184
|
end
|
185
185
|
|
186
|
+
# Get a URL which initiates a new external session for the user with the
|
187
|
+
# given email.
|
188
|
+
# Full details: http://www.campaignmonitor.com/api/account/#single_sign_on
|
189
|
+
#
|
190
|
+
# email - The email address of the Campaign Monitor user for whom
|
191
|
+
# the login session should be created.
|
192
|
+
# chrome - Which 'chrome' to display - Must be either "all",
|
193
|
+
# "tabs", or "none".
|
194
|
+
# url - The URL to display once logged in. e.g. "/subscribers/"
|
195
|
+
# integrator_id - The integrator ID. You need to contact Campaign Monitor
|
196
|
+
# support to get an integrator ID.
|
197
|
+
# client_id - The Client ID of the client which should be active once
|
198
|
+
# logged in to the Campaign Monitor account.
|
199
|
+
#
|
200
|
+
# Returns An object containing a single field SessionUrl which represents
|
201
|
+
# the URL to initiate the external Campaign Monitor session.
|
202
|
+
def external_session_url(email, chrome, url, integrator_id, client_id)
|
203
|
+
options = { :body => {
|
204
|
+
:Email => email,
|
205
|
+
:Chrome => chrome,
|
206
|
+
:Url => url,
|
207
|
+
:IntegratorID => integrator_id,
|
208
|
+
:ClientID => client_id }.to_json }
|
209
|
+
response = put("/externalsession.json", options)
|
210
|
+
Hashie::Mash.new(response)
|
211
|
+
end
|
212
|
+
|
186
213
|
def get(*args)
|
187
214
|
args = add_auth_details_to_options(args)
|
188
215
|
handle_response CreateSend.get(*args)
|
data/lib/createsend/version.rb
CHANGED
data/test/createsend_test.rb
CHANGED
@@ -261,6 +261,17 @@ class CreateSendTest < Test::Unit::TestCase
|
|
261
261
|
result.EmailAddress.should == 'admin@blackhole.com'
|
262
262
|
end
|
263
263
|
|
264
|
+
should "get an external session url" do
|
265
|
+
email = "exammple@example.com"
|
266
|
+
chrome = "None"
|
267
|
+
url = "/subscribers"
|
268
|
+
integrator_id = "qw989q8wud98qwyd"
|
269
|
+
client_id = "9q8uw9d8u9wud"
|
270
|
+
stub_put(@auth, "externalsession.json", "external_session.json")
|
271
|
+
result = @cs.external_session_url email, chrome, url, integrator_id, client_id
|
272
|
+
result.SessionUrl.should == "https://external1.createsend.com/cd/create/ABCDEF12/DEADBEEF?url=FEEDDAD1"
|
273
|
+
end
|
274
|
+
|
264
275
|
end
|
265
276
|
|
266
277
|
context "when the CreateSend API responds with an error" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: createsend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- .coveralls.yml
|
172
172
|
- .gitignore
|
173
173
|
- .travis.yml
|
174
|
+
- CONTRIBUTING.md
|
174
175
|
- Gemfile
|
175
176
|
- Gemfile.lock
|
176
177
|
- HISTORY.md
|
@@ -231,6 +232,7 @@ files:
|
|
231
232
|
- test/fixtures/drafts.json
|
232
233
|
- test/fixtures/email_client_usage.json
|
233
234
|
- test/fixtures/expired_oauth_token_api_error.json
|
235
|
+
- test/fixtures/external_session.json
|
234
236
|
- test/fixtures/import_subscribers.json
|
235
237
|
- test/fixtures/import_subscribers_partial_success.json
|
236
238
|
- test/fixtures/invalid_oauth_token_api_error.json
|
@@ -335,6 +337,7 @@ test_files:
|
|
335
337
|
- test/fixtures/drafts.json
|
336
338
|
- test/fixtures/email_client_usage.json
|
337
339
|
- test/fixtures/expired_oauth_token_api_error.json
|
340
|
+
- test/fixtures/external_session.json
|
338
341
|
- test/fixtures/import_subscribers.json
|
339
342
|
- test/fixtures/import_subscribers_partial_success.json
|
340
343
|
- test/fixtures/invalid_oauth_token_api_error.json
|