trycourier 1.2.0 → 1.3.0

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
2
  SHA256:
3
- metadata.gz: 71daf0eb0e891e05d2a2f76461586d5af3fbd029d1c813c6df8dc41015329370
4
- data.tar.gz: 54826227d59241eb5c0c4e382b9bdab12ce135eaaa4b5b7d17c2ba0bdc871f33
3
+ metadata.gz: 43ad4d30cf60c972878593e731297e16218eb733d5f234d42630c76ee4e61b70
4
+ data.tar.gz: 1cf5722063320f2a9bd2365b28da54c2aed796c80fe26b5fd36f1e6409579c1e
5
5
  SHA512:
6
- metadata.gz: 20f4fdbc92da8822a01110a7480113ef09fd1e76b2d1ee4045aadebf617930c1eba2a9756e785764b9a4487ff2df8b23fb09d393b27b07e3f4d1d5e1e6a921f2
7
- data.tar.gz: 0e6f85140f74677ffbe309ecebc0194974ee4c7e97959fc9a94bb5ea838a27d75e780c5028de9dc43e9b3f8caee9ddae9ffaa9b500b2f37391485afe75fb1460
6
+ metadata.gz: '08b2ec48d0f42bc45e87cfa2877d100b5deb2eb9927985a6544dbce6546a7950819a8d7885ffcd1d86c94c300ca2246d536ff57cb6589db0bb6f67be34c20107'
7
+ data.tar.gz: d4a47fc88397e68f9160fb03fcee6ed11591c2d78eb044e279ab0463b225c22ebc2c0eb78a0eb4f879c79c76e65851a4d807f960676f1cce2424bae072e1198d
data/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased][unreleased]
7
7
 
8
+ ## [v1.3.0] - 2022-01-26
9
+
10
+ ### Added
11
+
12
+ - Support for Bulk API by @tk26
13
+
8
14
  ## [v1.2.0] - 2021-04-08
9
15
 
10
16
  ### Added
@@ -79,7 +85,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
79
85
 
80
86
  Initial release by @troygoode
81
87
 
82
- [unreleased]: https://github.com/trycourier/courier-ruby/compare/v1.2.0...HEAD
88
+ [unreleased]: https://github.com/trycourier/courier-ruby/compare/v1.3.0...HEAD
89
+ [v1.3.0]: https://github.com/trycourier/courier-ruby/compare/v1.2.0...v1.3.0
83
90
  [v1.2.0]: https://github.com/trycourier/courier-ruby/compare/v1.1.0...v1.2.0
84
91
  [v1.1.0]: https://github.com/trycourier/courier-ruby/compare/v1.0.2...v1.1.0
85
92
  [v1.0.2]: https://github.com/trycourier/courier-ruby/compare/v1.0.1...v1.0.2
@@ -0,0 +1,79 @@
1
+ module Courier
2
+ class Bulk
3
+ KEY = "/bulk"
4
+
5
+ def initialize(session)
6
+ @session = session
7
+ end
8
+
9
+ def create_job(message:, idempotency_key: nil, idempotency_expiry: nil)
10
+ path = "#{KEY}"
11
+ payload = {
12
+ "message": message
13
+ }
14
+
15
+ headers = {}
16
+ if idempotency_key
17
+ headers["idempotency_key"] = idempotency_key
18
+ end
19
+ if idempotency_expiry
20
+ headers["x-idempotency-expiration"] = idempotency_expiry
21
+ end
22
+
23
+ res = @session.send(path, "POST", body: payload, headers: headers)
24
+ ErrorHandler.check_err(res)
25
+ end
26
+
27
+ def ingest_job(job_id:, users:, idempotency_key: nil, idempotency_expiry: nil)
28
+ path = "#{KEY}/#{job_id}"
29
+ payload = {
30
+ "users": users
31
+ }
32
+
33
+ headers = {}
34
+ if idempotency_key
35
+ headers["idempotency_key"] = idempotency_key
36
+ end
37
+ if idempotency_expiry
38
+ headers["x-idempotency-expiration"] = idempotency_expiry
39
+ end
40
+
41
+ res = @session.send(path, "POST", body: payload, headers: headers)
42
+ ErrorHandler.check_err(res)
43
+ end
44
+
45
+ def run_job(job_id:, idempotency_key: nil, idempotency_expiry: nil)
46
+ path = "#{KEY}/#{job_id}/run"
47
+ payload = {}
48
+
49
+ headers = {}
50
+ if idempotency_key
51
+ headers["idempotency_key"] = idempotency_key
52
+ end
53
+ if idempotency_expiry
54
+ headers["x-idempotency-expiration"] = idempotency_expiry
55
+ end
56
+
57
+ res = @session.send(path, "POST", body: payload, headers: headers)
58
+ ErrorHandler.check_err_non_json(res)
59
+ end
60
+
61
+ def get_job(job_id:)
62
+ path = "#{KEY}/#{job_id}"
63
+ res = @session.send(path, "GET")
64
+ ErrorHandler.check_err(res)
65
+ end
66
+
67
+ def get_job_users(job_id:, cursor: nil)
68
+ path = "#{KEY}/#{job_id}/users"
69
+
70
+ params = {}
71
+ if cursor
72
+ params["cursor"] = cursor
73
+ end
74
+
75
+ res = @session.send(path, "GET", params: params)
76
+ ErrorHandler.check_err(res)
77
+ end
78
+ end
79
+ end
@@ -1,3 +1,3 @@
1
1
  module Courier
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
data/lib/trycourier.rb CHANGED
@@ -5,6 +5,7 @@ require "trycourier/profiles"
5
5
  require "trycourier/session"
6
6
  require "trycourier/messages"
7
7
  require "trycourier/automations"
8
+ require "trycourier/bulk"
8
9
  require "trycourier/version"
9
10
  require "trycourier/exceptions"
10
11
  require "net/http"
@@ -50,6 +51,7 @@ module Courier
50
51
  @events = Courier::Events.new(@session)
51
52
  @brands = Courier::Brands.new(@session)
52
53
  @automations = Courier::Automations.new(@session)
54
+ @bulk = Courier::Bulk.new(@session)
53
55
  end
54
56
 
55
57
  def send(body)
@@ -94,5 +96,7 @@ module Courier
94
96
  attr_reader :brands
95
97
 
96
98
  attr_reader :automations
99
+
100
+ attr_reader :bulk
97
101
  end
98
102
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trycourier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Courier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-08 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -63,6 +63,7 @@ files:
63
63
  - lib/trycourier.rb
64
64
  - lib/trycourier/automations.rb
65
65
  - lib/trycourier/brands.rb
66
+ - lib/trycourier/bulk.rb
66
67
  - lib/trycourier/events.rb
67
68
  - lib/trycourier/exceptions.rb
68
69
  - lib/trycourier/lists.rb
@@ -94,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
95
  - !ruby/object:Gem::Version
95
96
  version: '0'
96
97
  requirements: []
97
- rubygems_version: 3.1.4
98
+ rubygems_version: 3.1.6
98
99
  signing_key:
99
100
  specification_version: 4
100
101
  summary: Wraps calls to the Courier REST API