Skip to content

Commit 551ec3f

Browse files
committed
feat: add specialized conferencing provider enums for event creation and updates
- Add CreateEventAutoConferencingProvider enum with Google Meet, Zoom Meeting, and Microsoft Teams - Add CreateEventManualConferencingProvider enum with additional Skype variants and Teams for Business - Update CreateEventRequest.Conferencing to use new provider-specific enums - Update UpdateEventRequest.Conferencing to use new provider-specific enums - Add comprehensive test coverage for new enums and their usage in API operations - Maintain backward compatibility with existing Event model using original ConferencingProvider BREAKING CHANGE: CreateEventRequest and UpdateEventRequest conferencing now use specialized provider enums instead of the generic ConferencingProvider
1 parent 603dc64 commit 551ec3f

File tree

7 files changed

+330
-16
lines changed

7 files changed

+330
-16
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Nylas Java SDK Changelog
22

3+
## [Unreleased]
4+
5+
### Added
6+
* `CreateEventAutoConferencingProvider` enum for autocreate conferencing providers in event creation
7+
* `CreateEventManualConferencingProvider` enum for manual conferencing providers in event creation and updates
8+
* Comprehensive test coverage for new conferencing provider enums
9+
10+
### Changed
11+
* Updated `CreateEventRequest.Conferencing` to use specific provider enums for autocreate and manual conferencing
12+
* Updated `UpdateEventRequest.Conferencing` to use specific provider enums for autocreate and manual conferencing
13+
314
## [2.12.0]
415

516
### Added

src/main/kotlin/com/nylas/models/ConferencingProvider.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,20 @@ import com.squareup.moshi.Json
66
* Enum for the different conferencing providers.
77
*/
88
enum class ConferencingProvider {
9-
@Json(name = "Zoom Meeting")
10-
ZOOM_MEETING,
11-
129
@Json(name = "Google Meet")
1310
GOOGLE_MEET,
1411

12+
@Json(name = "GoToMeeting")
13+
GOTOMEETING,
14+
1515
@Json(name = "Microsoft Teams")
1616
MICROSOFT_TEAMS,
1717

1818
@Json(name = "WebEx")
1919
WEBEX,
2020

21-
@Json(name = "GoToMeeting")
22-
GOTOMEETING,
23-
24-
@Json(name = "skypeForConsumer")
25-
SKYPE_FOR_CONSUMER,
21+
@Json(name = "Zoom Meeting")
22+
ZOOM_MEETING,
2623

2724
@Json(name = "unknown")
2825
UNKNOWN,
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.nylas.models
2+
3+
import com.squareup.moshi.Json
4+
5+
/**
6+
* Enum for the different conferencing providers that can be used to auto-create a meeting.
7+
*/
8+
enum class CreateEventAutoConferencingProvider {
9+
@Json(name = "Google Meet")
10+
GOOGLE_MEET,
11+
12+
@Json(name = "Zoom Meeting")
13+
ZOOM_MEETING,
14+
15+
@Json(name = "Microsoft Teams")
16+
MICROSOFT_TEAMS,
17+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.nylas.models
2+
3+
import com.squareup.moshi.Json
4+
5+
/**
6+
* Enum for the different conferencing providers that can be used to manually create a meeting.
7+
*/
8+
enum class CreateEventManualConferencingProvider {
9+
@Json(name = "Google Meet")
10+
GOOGLE_MEET,
11+
12+
@Json(name = "Zoom Meeting")
13+
ZOOM_MEETING,
14+
15+
@Json(name = "Microsoft Teams")
16+
MICROSOFT_TEAMS,
17+
18+
@Json(name = "Teams for Business")
19+
TEAMS_FOR_BUSINESS,
20+
21+
@Json(name = "Skype for Business")
22+
SKYPE_FOR_BUSINESS,
23+
24+
@Json(name = "Skype for Consumer")
25+
SKYPE_FOR_CONSUMER,
26+
}

src/main/kotlin/com/nylas/models/CreateEventRequest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ data class CreateEventRequest(
321321
* The conferencing provider.
322322
*/
323323
@Json(name = "provider")
324-
val provider: ConferencingProvider,
324+
val provider: CreateEventAutoConferencingProvider,
325325
/**
326326
* Empty dict to indicate an intention to autocreate a video link.
327327
* Additional provider settings may be included in autocreate.settings, but Nylas does not validate these.
@@ -338,7 +338,7 @@ data class CreateEventRequest(
338338
* The conferencing provider.
339339
*/
340340
@Json(name = "provider")
341-
val provider: ConferencingProvider,
341+
val provider: CreateEventManualConferencingProvider,
342342
/**
343343
* The conferencing details
344344
*/

src/main/kotlin/com/nylas/models/UpdateEventRequest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ data class UpdateEventRequest(
354354
* The conferencing provider.
355355
*/
356356
@Json(name = "provider")
357-
val provider: ConferencingProvider? = null,
357+
val provider: CreateEventAutoConferencingProvider? = null,
358358
/**
359359
* Empty dict to indicate an intention to autocreate a video link.
360360
* Additional provider settings may be included in autocreate.settings, but Nylas does not validate these.
@@ -366,15 +366,15 @@ data class UpdateEventRequest(
366366
* Builder for [Autocreate].
367367
*/
368368
class Builder {
369-
private var provider: ConferencingProvider? = null
369+
private var provider: CreateEventAutoConferencingProvider? = null
370370
private var autocreate: Map<String, Any>? = null
371371

372372
/**
373373
* Set the conferencing provider.
374374
* @param provider The conferencing provider.
375375
* @return The builder.
376376
*/
377-
fun provider(provider: ConferencingProvider) = apply { this.provider = provider }
377+
fun provider(provider: CreateEventAutoConferencingProvider) = apply { this.provider = provider }
378378

379379
/**
380380
* Set the autocreate settings.
@@ -400,7 +400,7 @@ data class UpdateEventRequest(
400400
* The conferencing provider.
401401
*/
402402
@Json(name = "provider")
403-
val provider: ConferencingProvider? = null,
403+
val provider: CreateEventManualConferencingProvider? = null,
404404
/**
405405
* The conferencing details
406406
*/
@@ -474,15 +474,15 @@ data class UpdateEventRequest(
474474
* Builder for [Details].
475475
*/
476476
class Builder {
477-
private var provider: ConferencingProvider? = null
477+
private var provider: CreateEventManualConferencingProvider? = null
478478
private var details: Config? = null
479479

480480
/**
481481
* Set the conferencing provider.
482482
* @param provider The conferencing provider.
483483
* @return The builder.
484484
*/
485-
fun provider(provider: ConferencingProvider) = apply { this.provider = provider }
485+
fun provider(provider: CreateEventManualConferencingProvider) = apply { this.provider = provider }
486486

487487
/**
488488
* Set the conferencing details.

0 commit comments

Comments
 (0)