Skip to content

feat(meetings): add site preferences API#4953

Closed
chrisadubois wants to merge 1 commit intonextfrom
chdubois/meetings-site-preferences
Closed

feat(meetings): add site preferences API#4953
chrisadubois wants to merge 1 commit intonextfrom
chdubois/meetings-site-preferences

Conversation

@chrisadubois
Copy link
Copy Markdown
Collaborator

@chrisadubois chrisadubois commented May 5, 2026

COMPLETES #N/A

No linked SDK issue. This supports the Webex Web Client webinar scheduling work by adding the SDK interface that WWC can consume after this PR ships.

This pull request addresses

Webex Web Client currently constructs the appapi site-preferences request itself to read scheduling.supportScheduleWebinar and scheduling.webinarWebLink. The SDK has getMeetingPreferences(), but that is the existing Hydra preferred-site flow and does not expose the site-scoped appapi preferences payload.

by making the following changes

  • Adds webex.meetings.fetchSitePreferencesMeViaSite(selectOptions?) at the plugin-meetings Meetings level.
  • Adds MeetingRequest#fetchSitePreferencesMeViaSite(siteUrl, selectOptions?) for GET https://{siteUrl}/wbxappapi/v1/users/me/preference.
  • Defaults selectOptions to ['scheduling'], while allowing callers to pass a different string-array selection.
  • Adds MeetingsUtil.getSiteName() using the same site-name behavior as WWC, including .my. Webex sites.
  • Returns the raw appapi response body with a narrow scheduling response type.
  • Leaves the existing Hydra-backed getMeetingPreferences() preferred-site flow unchanged.
  • Adds unit coverage for the meetings public method, request URL construction, custom select options, .my.webex.com site-name derivation, request error propagation, getSiteName, and the existing preferred-site regression path.

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

  • yarn test:unit --packages @webex/plugin-meetings --grep 'fetchSitePreferencesMeViaSite|getSiteName|fetchUserPreferredWebexSite' --no-serve — 27 passing.
  • yarn run --silent eslint packages/@webex/plugin-meetings/src/meetings/request.ts packages/@webex/plugin-meetings/src/meetings/index.ts packages/@webex/plugin-meetings/src/meetings/meetings.types.ts packages/@webex/plugin-meetings/src/meetings/util.ts — 0 errors, existing warnings in meetings/index.ts.
  • git diff --check — passed.

Notes:

  • yarn workspace @webex/plugin-meetings build is currently blocked by an existing unrelated type error in node_modules/@webex/internal-plugin-metrics/src/call-diagnostic/config.ts for LargeScaleWebinar.

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other - Please Specify
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

I certified that

  • I have read and followed contributing guidelines
  • I discussed changes with code owners prior to submitting this pull request
  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the documentation accordingly

⚠️ AI Assisted Content 🤖

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant