webinarjam 0.0.0 → 0.1.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 +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +29 -0
- data/lib/webinarjam/client.rb +10 -1
- data/lib/webinarjam/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a84e5c8af31f0f607bf6345eac4a6a78299632aa9fb631adbe17e26ae8af1e19
|
|
4
|
+
data.tar.gz: 799d5f5e31f1f9033280fab6824147f36143bc3745069fd12cc08fa938b9a898
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 98a2a2b65cbde23a2c04b19440f6ec1419b1cff9cd5b56e3876be8b314a0289d9ff11323d19658da6965b94bd1565e4f1f7b63642944586c61fec8278ff70858
|
|
7
|
+
data.tar.gz: 84ef2c38597565000d43d1fe36c2caf4538e129cb047da266fb9197913886ca3fa7b493d121cd8bee83553f62be4758e25e231dbd1f90b89d8e69ab9a1ed24e1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.0] - 2026-08-13
|
|
4
|
+
|
|
5
|
+
- Add `Client#countries` — countries and states/provinces reference list
|
|
6
|
+
for the registration country/state fields.
|
|
7
|
+
- Document EverWebinar-specific registration params (`date`, `timezone`)
|
|
8
|
+
and custom registration fields passthrough.
|
|
9
|
+
|
|
3
10
|
## [0.0.0] - 2026-08-13
|
|
4
11
|
|
|
5
12
|
- Initial release claiming the gem name.
|
data/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# WebinarJam
|
|
2
2
|
|
|
3
|
+
[](https://rubygems.org/gems/webinarjam)
|
|
4
|
+
[](https://github.com/linyiru/webinarjam/actions/workflows/ci.yml)
|
|
5
|
+
|
|
3
6
|
A dependency-free Ruby client for the [WebinarJam / EverWebinar API](https://support.webinarjam.com/en/articles/15370144-connect-to-webinarjam-or-everwebinar-api).
|
|
4
7
|
|
|
5
8
|
Covers every documented endpoint:
|
|
@@ -8,6 +11,7 @@ Covers every documented endpoint:
|
|
|
8
11
|
|---|---|---|
|
|
9
12
|
| `#webinars` | `POST /webinars` | List all published webinars |
|
|
10
13
|
| `#webinar(id)` | `POST /webinar` | Details for one webinar (schedules, URLs, presenters) |
|
|
14
|
+
| `#countries` | `POST /countries` | Countries and states/provinces reference for registration |
|
|
11
15
|
| `#register(...)` | `POST /register` | Register a user to a webinar |
|
|
12
16
|
| `#registrants(...)` | `POST /registrants` | List registrants and attendees |
|
|
13
17
|
| `#unsubscribe(...)` | `POST /unsubscribe` | Unsubscribe a lead from notifications |
|
|
@@ -64,6 +68,20 @@ client.unsubscribe(webinar_id: 1, lead_id: 818)
|
|
|
64
68
|
|
|
65
69
|
All responses are parsed JSON with symbolized keys.
|
|
66
70
|
|
|
71
|
+
### Custom registration fields
|
|
72
|
+
|
|
73
|
+
Custom fields configured on the registration page are passed by their label
|
|
74
|
+
(returned by `#webinar` under `registration_custom_fields`). Extra keyword
|
|
75
|
+
arguments to `#register` are forwarded as-is:
|
|
76
|
+
|
|
77
|
+
```ruby
|
|
78
|
+
client.register(
|
|
79
|
+
webinar_id: 1, schedule: schedule, first_name: "Jane", email: "jane@example.com",
|
|
80
|
+
company: "XYZ", # text custom field
|
|
81
|
+
whereDidYouHearAboutUs: ["id_1"] # dropdown custom field: pass option id(s)
|
|
82
|
+
)
|
|
83
|
+
```
|
|
84
|
+
|
|
67
85
|
### EverWebinar
|
|
68
86
|
|
|
69
87
|
The EverWebinar API shares the same shape under a different path prefix:
|
|
@@ -72,6 +90,17 @@ The EverWebinar API shares the same shape under a different path prefix:
|
|
|
72
90
|
client = WebinarJam::Client.new(product: :everwebinar)
|
|
73
91
|
```
|
|
74
92
|
|
|
93
|
+
EverWebinar's `#register` accepts two extra optional parameters, which the
|
|
94
|
+
generic keyword passthrough covers:
|
|
95
|
+
|
|
96
|
+
```ruby
|
|
97
|
+
client.register(
|
|
98
|
+
webinar_id: 6, schedule: 55, first_name: "Jane", email: "jane@example.com",
|
|
99
|
+
date: "2026-01-01 09:00", # must match a session date returned by #webinar
|
|
100
|
+
timezone: "GMT-5" # e.g. "GMT+2", "GMT+4:30"
|
|
101
|
+
)
|
|
102
|
+
```
|
|
103
|
+
|
|
75
104
|
### Errors and rate limiting
|
|
76
105
|
|
|
77
106
|
Every API failure raises a subclass of `WebinarJam::Error`:
|
data/lib/webinarjam/client.rb
CHANGED
|
@@ -48,10 +48,19 @@ module WebinarJam
|
|
|
48
48
|
post("webinar", webinar_id: webinar_id)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
# Retrieve the list of countries and states/provinces whose ids can be
|
|
52
|
+
# used in the country/state registration fields.
|
|
53
|
+
# @return [Hash] { status: "success", countries: [...] }
|
|
54
|
+
def countries
|
|
55
|
+
post("countries")
|
|
56
|
+
end
|
|
57
|
+
|
|
51
58
|
# Register a user to a webinar.
|
|
52
59
|
#
|
|
53
60
|
# Optional params include: last_name, country, state, timezone_id,
|
|
54
|
-
# ip_address, phone_country_code, phone, twilio_consent.
|
|
61
|
+
# ip_address, phone_country_code, phone, twilio_consent. EverWebinar
|
|
62
|
+
# additionally accepts date and timezone (e.g. "GMT-5"). Custom
|
|
63
|
+
# registration fields are passed by their label, as returned by #webinar.
|
|
55
64
|
# @return [Hash] { status: "success", user: {...} }
|
|
56
65
|
def register(webinar_id:, first_name:, email:, schedule:, **params)
|
|
57
66
|
post("register", params.merge(
|
data/lib/webinarjam/version.rb
CHANGED