Skip to content

Commit 450ba3e

Browse files
committed
Fixed issue where reminders were not being updated correctly when updating an event
1 parent 1aba5c8 commit 450ba3e

File tree

3 files changed

+63
-17
lines changed

3 files changed

+63
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
### Unreleased
44
* Added pagination support for folders
5+
* Fixed issue where reminders were not being updated correctly when updating an event
56

67
### [2.5.2] - Released 2024-12-02
78
* Added support for `skypeForConsumer` as conferencing provider

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

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -495,23 +495,6 @@ data class UpdateEventRequest(
495495
}
496496
}
497497

498-
/**
499-
* Class representing the reminders field of an event.
500-
*/
501-
data class Reminders(
502-
/**
503-
* Whether to use the default reminders for the calendar.
504-
* When true, uses the default reminder settings for the calendar
505-
*/
506-
@Json(name = "use_default")
507-
val useDefault: Boolean? = null,
508-
/**
509-
* A list of reminders for the event if useDefault is set to false.
510-
*/
511-
@Json(name = "override")
512-
val override: List<ReminderOverride>? = null,
513-
)
514-
515498
/**
516499
* Builder for [UpdateEventRequest].
517500
*/

src/test/kotlin/com/nylas/resources/EventsTests.kt

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,68 @@ class EventsTests {
345345
assertEquals(adapter.toJson(updateEventRequest), requestBodyCaptor.firstValue)
346346
}
347347

348+
@Test
349+
fun `updating event reminders calls requests with the correct params`() {
350+
val eventId = "event-123"
351+
val updateEventRequest =
352+
UpdateEventRequest(
353+
reminders = Reminders(
354+
useDefault = false,
355+
overrides = listOf(
356+
ReminderOverride(
357+
reminderMinutes = 15,
358+
reminderMethod = ReminderMethod.EMAIL,
359+
),
360+
ReminderOverride(
361+
reminderMinutes = 30,
362+
reminderMethod = ReminderMethod.POPUP,
363+
),
364+
),
365+
),
366+
)
367+
val updateEventQueryParams =
368+
UpdateEventQueryParams(
369+
calendarId = "calendar-id",
370+
notifyParticipants = true,
371+
)
372+
373+
events.update(grantId, eventId, updateEventRequest, updateEventQueryParams)
374+
val pathCaptor = argumentCaptor<String>()
375+
val typeCaptor = argumentCaptor<Type>()
376+
val requestBodyCaptor = argumentCaptor<String>()
377+
val queryParamCaptor = argumentCaptor<UpdateEventQueryParams>()
378+
val overrideParamCaptor = argumentCaptor<RequestOverrides>()
379+
verify(mockNylasClient).executePut<ListResponse<Event>>(
380+
pathCaptor.capture(),
381+
typeCaptor.capture(),
382+
requestBodyCaptor.capture(),
383+
queryParamCaptor.capture(),
384+
overrideParamCaptor.capture(),
385+
)
386+
387+
val expectedJson = """
388+
{
389+
"reminders": {
390+
"use_default": false,
391+
"overrides": [
392+
{
393+
"reminder_minutes": 15,
394+
"reminder_method": "email"
395+
},
396+
{
397+
"reminder_minutes": 30,
398+
"reminder_method": "popup"
399+
}
400+
]
401+
}
402+
}
403+
""".trimIndent()
404+
405+
assertEquals("v3/grants/$grantId/events/$eventId", pathCaptor.firstValue)
406+
assertEquals(Types.newParameterizedType(Response::class.java, Event::class.java), typeCaptor.firstValue)
407+
assertEquals(expectedJson, requestBodyCaptor.firstValue)
408+
}
409+
348410
@Test
349411
fun `destroying a event calls requests with the correct params`() {
350412
val eventId = "event-123"

0 commit comments

Comments
 (0)