trycourier 1.2.0 → 1.3.0

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 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