big_marker_client 0.1.7 → 0.1.9

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: ed37646b284700f68cd35dbc2479ab9cfcfb8f03bf5ae0c48e0145ce66ad9fe8
4
- data.tar.gz: d4690336aa4d989931f00fdff50ed6c4f328bb6b85e1a3f1d9152eb741fe7b50
3
+ metadata.gz: ef58a11c9bb23d90fdb4f35ebb17cc9aea7a0782d9acb09324db9a87dd3ffcb5
4
+ data.tar.gz: a594edc8149b000c227b9afa0734a64f02465720fa132ebedff782f0b8bca602
5
5
  SHA512:
6
- metadata.gz: ce98e4e5c230dc9d7dc5ae42c176e4bcae182b729d871eb55434f7e0db3c9c592ef82e6ce68564fc1721088bf949b6bf408ad7a0c2acce2ae111966a53fee289
7
- data.tar.gz: bd727a006b800643ef093ca8e1e115a88644826aabaf96c1b1c59fc067d75d84451d7daecfedee75e524235aca91a3d4d7002e6861b27f2c26079f50d98da7ba
6
+ metadata.gz: c41626edde5f66fe935a7f5f99f73845312cc4ee932dbdf73556020c5b1362b1ac51a0ab705ed701475f9b138546f16d78454a7e1bc8c430782ea733cfc539ed
7
+ data.tar.gz: 2609de80a34de2da857405734bb1cc06c506300ee09f17b3f77e099651dea85e62055788e466df7dc437a33b2abdc20d4cca8f340dd70d52bc5f77f8c5f320ec
data/CHANGELOG.md CHANGED
@@ -1,10 +1,25 @@
1
1
  # Changelog
2
2
 
3
- ## [0.1.7] - Unreleased
3
+ ## [0.1.9]
4
+
5
+ - add conference fields `tags`, `banner_filter_percentage`
6
+ - add attendee fields `start_time`, `coupon_used`
7
+ - add webhooks related fields
8
+
9
+ ## [0.1.8] - 2022-05-20
10
+
11
+ - loosen faraday dependency
12
+
13
+ ## [0.1.7] - 2022-05-20
4
14
 
5
15
  - fix return types for update and create are different from show
6
16
  - fix attendee duration format (not integer minutes but time string)
7
17
  - add attendee field `certificate_of_completion`
18
+ - add participant fields `enter_as_attendee`, `remove_bigmarker_contact_option`, `show_on_networking_center`,
19
+ `show_chat_icon_in_booth_or_session_room`
20
+ - better error handling of date fields
21
+ - better handling of attendees `SurveyResult`
22
+ - bundle update
8
23
 
9
24
  ## [0.1.6] - 2022-01-19
10
25
 
data/CODE_OF_CONDUCT.md CHANGED
@@ -39,7 +39,7 @@ This Code of Conduct applies within all community spaces, and also applies when
39
39
 
40
40
  ## Enforcement
41
41
 
42
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at bvk@capinside.com. All complaints will be reviewed and investigated promptly and fairly.
42
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the [community leaders responsible for enforcement](mailto:core-crew@capinside.com). All complaints will be reviewed and investigated promptly and fairly.
43
43
 
44
44
  All community leaders are obligated to respect the privacy and security of the reporter of any incident.
45
45
 
data/Gemfile CHANGED
@@ -15,7 +15,7 @@ group :development do
15
15
  end
16
16
 
17
17
  group :test do
18
- gem "activesupport", "~> 7.0"
18
+ gem "activesupport", ">= 5.2"
19
19
  gem "factory_bot"
20
20
  gem "rspec", "~> 3.0"
21
21
  gem "webmock"
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # BigMarkerClient
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/bigmarker_client`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ This is a lightweight wrapper for rails around the [BigMarker API](https://docs.bigmarker.com/). You will need an API key to be able to use it, set it in the configuration.
6
4
 
7
5
  ## Installation
8
6
 
@@ -24,6 +22,8 @@ Or install it yourself as:
24
22
 
25
23
  As this is a lightweight wrapper around the BigMarker API, mostly refer to [their documentation](https://docs.bigmarker.com/). Most notably the creation of conferences will require a brief look into their requirements.
26
24
 
25
+ To be able to connect to BigMarker you need to set the `BigMarkerClient::Config.api_key`, as a default this will look for an environment variable `BIGMARKER_API_KEY` to read the key from.
26
+
27
27
  ## Development
28
28
 
29
29
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -36,11 +36,11 @@ Only a limited set of all API functions are currently implemented, however the e
36
36
 
37
37
  ## Contributing
38
38
 
39
- Bug reports and pull requests are welcome on GitHub at https://gitlab.com/capinside-oss/big_marker_client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/capinside-oss/big_marker_client/-/blob/main/CODE_OF_CONDUCT.md).
39
+ Bug reports and pull requests are welcome on GitHub at https://gitlab.com/capinside-oss/big_marker_client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/capinside/big_marker_client/-/blob/main/CODE_OF_CONDUCT.md).
40
40
 
41
41
  ## License
42
42
 
43
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
43
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). BigMarker is a registered trademark of BigMarker.com LLC., Chicago Illinois USA.
44
44
 
45
45
  ## Code of Conduct
46
46
 
@@ -1,5 +1,4 @@
1
1
  require "faraday"
2
- require "faraday/typhoeus"
3
2
 
4
3
  module BigMarkerClient
5
4
  class Base
@@ -101,7 +100,9 @@ module BigMarkerClient
101
100
  return true if break_on_full_metadata?(results: results, result: result, page: page) ||
102
101
  break_on_partial_metadata?(results: results, result: result, page: page)
103
102
 
103
+ # rubocop:disable Style/ZeroLengthPredicate
104
104
  results.length.zero? || (results.length % page_size) != 0 || (results.length.to_f / page_size) < page
105
+ # rubocop:enable Style/ZeroLengthPredicate
105
106
  end
106
107
 
107
108
  def break_on_full_metadata?(results:, result:, page:)
@@ -4,7 +4,6 @@ module BigMarkerClient
4
4
 
5
5
  def initialize
6
6
  @connection = Faraday.new(url: Config.base_url) do |faraday|
7
- faraday.adapter :typhoeus
8
7
  faraday = headers(faraday)
9
8
  configure_logging(faraday) if Config.log
10
9
  end
@@ -4,7 +4,7 @@ module BigMarkerClient
4
4
  attr_accessor :id, :bmid, :conference_id, :email, :first_name, :last_name, :edited_in_room_display_name,
5
5
  :custom_fields, :entered_at, :leaved_at, :total_duration, :engaged_duration, :attendance_monitor,
6
6
  :time_zone, :country, :certificate_of_completion, :chats_count, :qas_count, :polls_count, :polls,
7
- :questions, :handouts, :browser_name, :browser_version, :device_name
7
+ :questions, :handouts, :browser_name, :browser_version, :device_name, :start_time, :coupon_used
8
8
  attr_reader :view_handout, :download_handout, :survey_results
9
9
 
10
10
  def download_handout=(handout_array)
@@ -3,22 +3,36 @@ module BigMarkerClient
3
3
  ##
4
4
  # for supported values for time_zone please compare [the documentation](https://docs.bigmarker.com/#time-zones)
5
5
  class Conference < Base
6
- attr_accessor :id, :title, :event_type, :display_language, :meeting_mode, :type, :conference_copy_id,
7
- :master_webinar_id, :max_attendance, :purpose, :start_time, :duration_minutes, :conference_address,
8
- :custom_event_id, :channel_id, :webcast_mode, :end_time, :moderator_open_time, :audience_open_time,
9
- :first_admin_enter_time, :manual_end_time, :privacy, :exit_url, :enable_registration_email,
10
- :enable_knock_to_enter, :send_reminder_emails_to_presenters, :review_emails,
11
- :poll_results, :enable_ie_safari, :enable_twitter, :auto_invite_all_channel_members,
12
- :send_cancellation_email, :show_reviews, :registration_required_to_view_recording,
13
- :who_can_watch_recording, :show_handout_on_page, :background_image_url, :room_logo, :agenda_topics,
14
- :disclaimer, :recorded, :recording_url, :recording_iframe,
6
+ attr_accessor :agenda_topics, :audience_open_time, :auto_invite_all_channel_members, :background_image_url,
7
+ :banner_filter_percentage, :channel_id, :conference_address, :conference_copy_id, :custom_event_id,
8
+ :disclaimer, :display_language, :duration_minutes, :enable_ie_safari, :enable_knock_to_enter,
9
+ :enable_registration_email, :enable_twitter, :end_time, :event_type, :exit_url,
10
+ :first_admin_enter_time, :id, :manual_end_time, :master_webinar_id, :max_attendance, :meeting_mode,
11
+ :moderator_open_time, :poll_results, :privacy, :purpose, :recorded, :recording_duration,
12
+ :recording_iframe, :recording_url, :registration_required_to_view_recording, :review_emails,
13
+ :room_logo, :send_cancellation_email, :send_reminder_emails_to_presenters, :show_handout_on_page,
14
+ :show_reviews, :start_time, :time_zone, :title, :type, :webcast_mode, :webhook_url, :webinar_tags,
15
+ :who_can_watch_recording,
16
+ ## CCs seems unused?
17
+ :enable_closed_caption, :cc_original_language, :cc_display_language,
18
+ # breakout room related
19
+ :enable_breakout_rooms, :enable_breakout_time, :breakout_time_limit, :breakout_mode,
20
+ :allow_breakout_mic, :allow_breakout_cam, :allow_breakout_screen, :allow_breakout_whiteboard,
21
+ :allow_breakout_slide, :main_room_return, :unnassigned_attendee, :unnassigned_presenter,
22
+ :breakout_room_total,
15
23
  # for conference creation
16
- :sub_url, :enable_dial_in, :time_zone, :schedule_type, :recurring_start_times,
17
- :presenter_advanced_enter_time, :attendee_advanced_enter_time, :webinar_format,
18
- :registration_conf_emails, :send_notification_emails_to_presenters, :webhook_url, :channel_admin_id,
19
- :free_for_all, :room_type, :room_sub_title
24
+ :sub_url, :enable_dial_in, :room_sub_title, :schedule_type, :recurring_start_times,
25
+ :presenter_advanced_enter_time, :attendee_advanced_enter_time, :webinar_format, :ondemand_video_url,
26
+ :registration_conf_emails, :send_notification_emails_to_presenters, :channel_admin_id,
27
+ :room_type, :icon,
28
+ # webhook related
29
+ :enable_create_webinar_reg_webhook, :enable_new_reg_webhook,
30
+ :enable_webinar_start_webhook, :webinar_start_webhook_url, :enable_waiting_room_open_webhook,
31
+ :waiting_room_open_webhook_url, :enable_webinar_end_webhook, :webinar_end_webhook_url,
32
+ :enable_live_attendee_data_webhook, :live_attendee_data_webhook_url,
33
+ :enable_on_demand_viewer_webhook, :on_demand_viewer_webhook_url
20
34
 
21
- attr_reader :dial_in_information, :preload_files, :presenters, :webinar_stats, :associated_series
35
+ attr_reader :associated_series, :dial_in_information, :preload_files, :presenters, :webinar_stats
22
36
 
23
37
  # differences between creation and retrieval, use creation as leading (oh well)
24
38
  alias can_view_poll_results poll_results
@@ -31,6 +45,8 @@ module BigMarkerClient
31
45
  alias language= display_language=
32
46
  alias copy_webinar_id conference_copy_id
33
47
  alias copy_webinar_id= conference_copy_id=
48
+ alias tags webinar_tags
49
+ alias tags= webinar_tags=
34
50
 
35
51
  def dial_in_information=(dial_in_hash)
36
52
  @dial_in_information = if dial_in_hash.nil? || !dial_in_hash.is_a?(Hash)
@@ -1,3 +1,3 @@
1
1
  module BigMarkerClient
2
- VERSION = "0.1.7".freeze
2
+ VERSION = "0.1.9".freeze
3
3
  end
@@ -28,16 +28,18 @@ FactoryBot.define do
28
28
  download_handout { [] }
29
29
  view_handout { [] }
30
30
  certificate_of_completion { "" }
31
+ start_time { (Time.now - (45 * BigMarkerClient::TestSupport::MINUTES)).strftime("%FT%T%:z") }
32
+ coupon_used { nil }
31
33
 
32
34
  initialize_with do
33
35
  new(id: id, bmid: bmid, conference_id: conference_id, email: email, first_name: first_name, last_name: last_name,
34
36
  edited_in_room_display_name: edited_in_room_display_name, custom_fields: custom_fields,
35
- entered_at: entered_at, leaved_at: leaved_at, total_duration: total_duration,
37
+ entered_at: entered_at, leaved_at: leaved_at, total_duration: total_duration, start_time: start_time,
36
38
  engaged_duration: engaged_duration, attendance_monitor: attendance_monitor, survey_results: survey_results,
37
39
  time_zone: time_zone, country: country, chats_count: chats_count, qas_count: qas_count,
38
40
  polls_count: polls_count, polls: polls, questions: questions, handouts: handouts, browser_name: browser_name,
39
41
  browser_version: browser_version, device_name: device_name, download_handout: download_handout,
40
- view_handout: view_handout, certificate_of_completion: certificate_of_completion)
42
+ view_handout: view_handout, certificate_of_completion: certificate_of_completion, coupon_used: coupon_used)
41
43
  end
42
44
 
43
45
  trait :with_view_handouts do
@@ -18,6 +18,7 @@ FactoryBot.define do
18
18
  duration_minutes { 60 }
19
19
  sequence(:conference_address) { |n| "https://host.example.com/example_channel/event-#{n}" }
20
20
  custom_event_id { nil }
21
+ banner_filter_percentage { Random.rand.round(2) }
21
22
  channel_id { "example_channel" }
22
23
  webcast_mode { "automatic" }
23
24
  end_time { (start_time_obj + (duration_minutes * BigMarkerClient::TestSupport::MINUTES)).strftime("%FT%T%:z") }
@@ -45,6 +46,7 @@ FactoryBot.define do
45
46
  agenda_topics { [] }
46
47
  disclaimer { "disclaimer" }
47
48
  recorded { false }
49
+ recording_duration { 0 }
48
50
  recording_url { nil }
49
51
  recording_iframe { nil }
50
52
  sequence(:sub_url) { |n| "event-#{n}" }
@@ -59,9 +61,11 @@ FactoryBot.define do
59
61
  send_notification_emails_to_presenters { true }
60
62
  webhook_url { nil }
61
63
  channel_admin_id { nil }
62
- free_for_all { false }
63
64
  room_type { nil }
64
65
  room_sub_title { nil }
66
+ ondemand_video_url { nil }
67
+ webinar_tags { [] }
68
+ icon { nil }
65
69
  dial_in_information { nil }
66
70
  preload_files { [] }
67
71
  presenters { [] }
@@ -73,13 +77,14 @@ FactoryBot.define do
73
77
  type: type, conference_copy_id: conference_copy_id, master_webinar_id: master_webinar_id,
74
78
  max_attendance: max_attendance, purpose: purpose, start_time: start_time, duration_minutes: duration_minutes,
75
79
  channel_id: channel_id, conference_address: conference_address, custom_event_id: custom_event_id,
80
+ banner_filter_percentage: banner_filter_percentage, recording_duration: recording_duration,
76
81
  webcast_mode: webcast_mode, end_time: end_time, moderator_open_time: moderator_open_time,
77
82
  audience_open_time: audience_open_time, first_admin_enter_time: first_admin_enter_time,
78
83
  manual_end_time: manual_end_time, privacy: privacy, exit_url: exit_url,
79
84
  enable_registration_email: enable_registration_email, enable_knock_to_enter: enable_knock_to_enter,
80
85
  review_emails: review_emails, send_reminder_emails_to_presenters: send_reminder_emails_to_presenters,
81
86
  poll_results: poll_results, enable_ie_safari: enable_ie_safari, enable_twitter: enable_twitter,
82
- auto_invite_all_channel_members: auto_invite_all_channel_members,
87
+ auto_invite_all_channel_members: auto_invite_all_channel_members, icon: icon,
83
88
  send_cancellation_email: send_cancellation_email, show_reviews: show_reviews,
84
89
  registration_required_to_view_recording: registration_required_to_view_recording,
85
90
  who_can_watch_recording: who_can_watch_recording, show_handout_on_page: show_handout_on_page,
@@ -88,18 +93,14 @@ FactoryBot.define do
88
93
  sub_url: sub_url, enable_dial_in: enable_dial_in, time_zone: time_zone, schedule_type: schedule_type,
89
94
  recurring_start_times: recurring_start_times, presenter_advanced_enter_time: presenter_advanced_enter_time,
90
95
  attendee_advanced_enter_time: attendee_advanced_enter_time, webinar_format: webinar_format,
91
- registration_conf_emails: registration_conf_emails,
96
+ registration_conf_emails: registration_conf_emails, webinar_tags: webinar_tags,
92
97
  send_notification_emails_to_presenters: send_notification_emails_to_presenters,
93
- webhook_url: webhook_url, channel_admin_id: channel_admin_id, free_for_all: free_for_all,
98
+ webhook_url: webhook_url, channel_admin_id: channel_admin_id, ondemand_video_url: ondemand_video_url,
94
99
  room_type: room_type, room_sub_title: room_sub_title, dial_in_information: dial_in_information,
95
100
  preload_files: preload_files, presenters: presenters, webinar_stats: webinar_stats,
96
101
  associated_series: associated_series)
97
102
  end
98
103
 
99
- trait :with_presenters do
100
- presenters { build_list(:big_marker_presenter, 2, conference_id: id).map(&:to_h) }
101
- end
102
-
103
104
  trait :with_dial_in_information do
104
105
  dial_in_information { build(:big_marker_dial_in_information).to_h }
105
106
  end
@@ -108,6 +109,10 @@ FactoryBot.define do
108
109
  preload_files { build_list(:big_marker_preload_file, 2).map(&:to_h) }
109
110
  end
110
111
 
112
+ trait :with_presenters do
113
+ presenters { build_list(:big_marker_presenter, 2, conference_id: id).map(&:to_h) }
114
+ end
115
+
111
116
  trait :with_webinar_stats do
112
117
  webinar_stats { build(:big_marker_webinar_stats).to_h }
113
118
  end
metadata CHANGED
@@ -1,45 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: big_marker_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burkhard Vogel-Kreykenbohm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2023-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.0'
27
- - !ruby/object:Gem::Dependency
28
- name: faraday-httpclient
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.0'
41
- - !ruby/object:Gem::Dependency
42
- name: faraday-typhoeus
43
15
  requirement: !ruby/object:Gem::Requirement
44
16
  requirements:
45
17
  - - ">="
@@ -134,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
106
  - !ruby/object:Gem::Version
135
107
  version: '0'
136
108
  requirements: []
137
- rubygems_version: 3.3.7
109
+ rubygems_version: 3.4.1
138
110
  signing_key:
139
111
  specification_version: 4
140
112
  summary: simple client library to access the BigMarker API