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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 007f29eaa5a4eeefb046bcfa9b02f3e25e39406acad46b0a395ae969533b91a3
4
- data.tar.gz: df1a31482c8dd326010dc2e13ad6d60657a9a57b3502e3a363ff54b511adbd1b
3
+ metadata.gz: a84e5c8af31f0f607bf6345eac4a6a78299632aa9fb631adbe17e26ae8af1e19
4
+ data.tar.gz: 799d5f5e31f1f9033280fab6824147f36143bc3745069fd12cc08fa938b9a898
5
5
  SHA512:
6
- metadata.gz: f223c1847c4e590be08cb8882e08806e04cac0d59f4b341507a06dd4a527a97074a117e658d6c1ffbac94062bfd77d8c228536c0cb4a20c63f0f46d819a26f30
7
- data.tar.gz: dcd6b918f3131a4aab6f49f5215787343f8250a8fdc92bc509f4fa6712efa06ad6d8afb5a8d2e1629c895ace00cb2a9d5362ad24226cc1c77170011afe46adf8
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
+ [![Gem Version](https://img.shields.io/gem/v/webinarjam)](https://rubygems.org/gems/webinarjam)
4
+ [![CI](https://github.com/linyiru/webinarjam/actions/workflows/ci.yml/badge.svg)](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`:
@@ -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(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WebinarJam
4
- VERSION = "0.0.0"
4
+ VERSION = "0.1.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webinarjam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yi-Ru Lin