Skip to content

Commit 18ffd30

Browse files
authored
CUST-5374: add resource fields to event-create and update (#323)
1 parent 6b648b3 commit 18ffd30

3 files changed

Lines changed: 76 additions & 11 deletions

File tree

CHANGELOG.md

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

3+
## [Unreleased]
4+
5+
### Changed
6+
* Extended `EventResource` with additional room metadata fields: `capacity` (`Int`), `building` (`String`), `floorName` / `floor_name` (`String`), `floorSection` / `floor_section` (`String`), and `floorNumber` / `floor_number` (`Int`) — all optional, defaulting to `null`
7+
38
## [v2.16.0] - Release 2026-05-07
49

510
### Added

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,14 @@ data class EventResource(
99
val email: String,
1010
@Json(name = "name")
1111
val name: String? = null,
12+
@Json(name = "capacity")
13+
val capacity: Int? = null,
14+
@Json(name = "building")
15+
val building: String? = null,
16+
@Json(name = "floor_name")
17+
val floorName: String? = null,
18+
@Json(name = "floor_section")
19+
val floorSection: String? = null,
20+
@Json(name = "floor_number")
21+
val floorNumber: Int? = null,
1222
)

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

Lines changed: 61 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,7 +1400,15 @@ class EventsTests {
14001400
"object": "event",
14011401
"when": {"date": "2024-06-18", "object": "date"},
14021402
"resources": [
1403-
{"email": "room@example.com", "name": "Conference Room A"},
1403+
{
1404+
"email": "room@example.com",
1405+
"name": "Conference Room A",
1406+
"capacity": 10,
1407+
"building": "HQ",
1408+
"floor_name": "Second Floor",
1409+
"floor_section": "East Wing",
1410+
"floor_number": 2
1411+
},
14041412
{"email": "projector@example.com"}
14051413
],
14061414
"text_description": "Plain text version of description"
@@ -1410,10 +1418,22 @@ class EventsTests {
14101418

14111419
val event = adapter.fromJson(jsonBuffer)!!
14121420
assertEquals(2, event.resources?.size)
1413-
assertEquals("room@example.com", event.resources?.get(0)?.email)
1414-
assertEquals("Conference Room A", event.resources?.get(0)?.name)
1415-
assertEquals("projector@example.com", event.resources?.get(1)?.email)
1416-
assertEquals(null, event.resources?.get(1)?.name)
1421+
val room = event.resources?.get(0)!!
1422+
assertEquals("room@example.com", room.email)
1423+
assertEquals("Conference Room A", room.name)
1424+
assertEquals(10, room.capacity)
1425+
assertEquals("HQ", room.building)
1426+
assertEquals("Second Floor", room.floorName)
1427+
assertEquals("East Wing", room.floorSection)
1428+
assertEquals(2, room.floorNumber)
1429+
val projector = event.resources?.get(1)!!
1430+
assertEquals("projector@example.com", projector.email)
1431+
assertEquals(null, projector.name)
1432+
assertEquals(null, projector.capacity)
1433+
assertEquals(null, projector.building)
1434+
assertEquals(null, projector.floorName)
1435+
assertEquals(null, projector.floorSection)
1436+
assertEquals(null, projector.floorNumber)
14171437
assertEquals("Plain text version of description", event.textDescription)
14181438
}
14191439

@@ -1443,31 +1463,61 @@ class EventsTests {
14431463
val request = CreateEventRequest(
14441464
whenObj = CreateEventRequest.When.Time(1620000000),
14451465
resources = listOf(
1446-
EventResource(email = "room@example.com", name = "Conference Room A"),
1466+
EventResource(
1467+
email = "room@example.com",
1468+
name = "Conference Room A",
1469+
capacity = 10,
1470+
building = "HQ",
1471+
floorName = "Second Floor",
1472+
floorSection = "East Wing",
1473+
floorNumber = 2,
1474+
),
14471475
EventResource(email = "projector@example.com"),
14481476
),
14491477
)
14501478

14511479
val jsonMap = JsonHelper.moshi().adapter(Map::class.java).fromJson(adapter.toJson(request))!!
14521480
val resources = jsonMap["resources"] as List<*>
14531481
assertEquals(2, resources.size)
1454-
assertEquals("room@example.com", (resources[0] as Map<*, *>)["email"])
1455-
assertEquals("Conference Room A", (resources[0] as Map<*, *>)["name"])
1482+
val room = resources[0] as Map<*, *>
1483+
assertEquals("room@example.com", room["email"])
1484+
assertEquals("Conference Room A", room["name"])
1485+
assertEquals(10.0, room["capacity"])
1486+
assertEquals("HQ", room["building"])
1487+
assertEquals("Second Floor", room["floor_name"])
1488+
assertEquals("East Wing", room["floor_section"])
1489+
assertEquals(2.0, room["floor_number"])
14561490
assertEquals("projector@example.com", (resources[1] as Map<*, *>)["email"])
14571491
}
14581492

14591493
@Test
14601494
fun `UpdateEventRequest with resources serializes correctly`() {
14611495
val adapter = JsonHelper.moshi().adapter(UpdateEventRequest::class.java)
14621496
val request = UpdateEventRequest(
1463-
resources = listOf(EventResource(email = "room@example.com", name = "Room B")),
1497+
resources = listOf(
1498+
EventResource(
1499+
email = "room@example.com",
1500+
name = "Room B",
1501+
capacity = 5,
1502+
building = "Annex",
1503+
floorName = "Ground Floor",
1504+
floorSection = "West",
1505+
floorNumber = 1,
1506+
),
1507+
),
14641508
)
14651509

14661510
val jsonMap = JsonHelper.moshi().adapter(Map::class.java).fromJson(adapter.toJson(request))!!
14671511
val resources = jsonMap["resources"] as List<*>
14681512
assertEquals(1, resources.size)
1469-
assertEquals("room@example.com", (resources[0] as Map<*, *>)["email"])
1470-
assertEquals("Room B", (resources[0] as Map<*, *>)["name"])
1513+
val room = resources[0] as Map<*, *>
1514+
assertEquals("room@example.com", room["email"])
1515+
assertEquals("Room B", room["name"])
1516+
assertEquals(5.0, room["capacity"])
1517+
assertEquals("Annex", room["building"])
1518+
assertEquals("Ground Floor", room["floor_name"])
1519+
assertEquals("West", room["floor_section"])
1520+
assertEquals(1.0, room["floor_number"])
14711521
}
14721522

14731523
@Test

0 commit comments

Comments
 (0)