Skip to content

Commit a30d378

Browse files
committed
Updated GET notetaker to support new query params
1 parent 30a5b16 commit a30d378

File tree

3 files changed

+77
-16
lines changed

3 files changed

+77
-16
lines changed

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

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ data class ListNotetakersQueryParams(
1313
val state: Notetaker.NotetakerState? = null,
1414

1515
/**
16-
* Filter for Notetaker bots that are scheduled to join meetings after the specified time.
16+
* Filter for Notetaker bots that have join times that start at or after a specific time, in Unix timestamp format.
1717
*/
18-
@Json(name = "join_time_from")
19-
val joinTimeFrom: Long? = null,
18+
@Json(name = "join_time_start")
19+
val joinTimeStart: Long? = null,
2020

2121
/**
22-
* Filter for Notetaker bots that are scheduled to join meetings until the specified time.
22+
* Filter for Notetaker bots that have join times that end at or are before a specific time, in Unix timestamp format.
2323
*/
24-
@Json(name = "join_time_until")
25-
val joinTimeUntil: Long? = null,
24+
@Json(name = "join_time_end")
25+
val joinTimeEnd: Long? = null,
2626

2727
/**
2828
* The maximum number of objects to return.
@@ -51,18 +51,33 @@ data class ListNotetakersQueryParams(
5151
*/
5252
@Json(name = "select")
5353
var select: String? = null,
54+
55+
/**
56+
* Sort the data Nylas returns in ascending (asc) or descending (desc) order.
57+
*/
58+
@Json(name = "order_direction")
59+
val orderDirection: Notetaker.OrderDirection? = null,
60+
61+
/**
62+
* Sort the data Nylas returns by the selected field.
63+
* Defaults to created_at.
64+
*/
65+
@Json(name = "order_field")
66+
val orderField: Notetaker.OrderField? = null,
5467
) : IQueryParams {
5568
/**
5669
* Builder for [ListNotetakersQueryParams].
5770
*/
5871
class Builder {
5972
private var state: Notetaker.NotetakerState? = null
60-
private var joinTimeFrom: Long? = null
61-
private var joinTimeUntil: Long? = null
73+
private var joinTimeStart: Long? = null
74+
private var joinTimeEnd: Long? = null
6275
private var limit: Int? = null
6376
private var pageToken: String? = null
6477
private var prevPageToken: String? = null
6578
private var select: String? = null
79+
private var orderDirection: Notetaker.OrderDirection? = null
80+
private var orderField: Notetaker.OrderField? = null
6681

6782
/**
6883
* Sets the state filter for Notetakers.
@@ -72,18 +87,18 @@ data class ListNotetakersQueryParams(
7287
fun state(state: Notetaker.NotetakerState?) = apply { this.state = state }
7388

7489
/**
75-
* Sets the join time from filter.
76-
* @param joinTimeFrom Unix timestamp to filter Notetakers joining after this time.
90+
* Sets the join time start filter.
91+
* @param joinTimeStart Unix timestamp to filter Notetakers joining after this time.
7792
* @return The builder.
7893
*/
79-
fun joinTimeFrom(joinTimeFrom: Long?) = apply { this.joinTimeFrom = joinTimeFrom }
94+
fun joinTimeStart(joinTimeStart: Long?) = apply { this.joinTimeStart = joinTimeStart }
8095

8196
/**
82-
* Sets the join time until filter.
83-
* @param joinTimeUntil Unix timestamp to filter Notetakers joining until this time.
97+
* Sets the join time end filter.
98+
* @param joinTimeEnd Unix timestamp to filter Notetakers joining until this time.
8499
* @return The builder.
85100
*/
86-
fun joinTimeUntil(joinTimeUntil: Long?) = apply { this.joinTimeUntil = joinTimeUntil }
101+
fun joinTimeEnd(joinTimeEnd: Long?) = apply { this.joinTimeEnd = joinTimeEnd }
87102

88103
/**
89104
* Sets the maximum number of objects to return.
@@ -113,18 +128,34 @@ data class ListNotetakersQueryParams(
113128
*/
114129
fun select(select: String?) = apply { this.select = select }
115130

131+
/**
132+
* Sets the order direction for sorting results.
133+
* @param orderDirection The direction to sort results in (asc or desc)
134+
* @return The builder.
135+
*/
136+
fun orderDirection(orderDirection: Notetaker.OrderDirection?) = apply { this.orderDirection = orderDirection }
137+
138+
/**
139+
* Sets the field to sort results by.
140+
* @param orderField The field to sort results by
141+
* @return The builder.
142+
*/
143+
fun orderField(orderField: Notetaker.OrderField?) = apply { this.orderField = orderField }
144+
116145
/**
117146
* Builds the [ListNotetakersQueryParams] object.
118147
* @return The [ListNotetakersQueryParams] object.
119148
*/
120149
fun build() = ListNotetakersQueryParams(
121150
state = state,
122-
joinTimeFrom = joinTimeFrom,
123-
joinTimeUntil = joinTimeUntil,
151+
joinTimeStart = joinTimeStart,
152+
joinTimeEnd = joinTimeEnd,
124153
limit = limit,
125154
pageToken = pageToken,
126155
prevPageToken = prevPageToken,
127156
select = select,
157+
orderDirection = orderDirection,
158+
orderField = orderField,
128159
)
129160
}
130161
}

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,31 @@ data class Notetaker(
100100
MEDIA_DELETED,
101101
}
102102

103+
/**
104+
* Enum for list order direction options
105+
*/
106+
enum class OrderDirection {
107+
@Json(name = "asc")
108+
ASC,
109+
110+
@Json(name = "desc")
111+
DESC,
112+
}
113+
114+
/**
115+
* Enum for list order field options
116+
*/
117+
enum class OrderField {
118+
@Json(name = "created_at")
119+
CREATED_AT,
120+
121+
@Json(name = "name")
122+
NAME,
123+
124+
@Json(name = "join_time")
125+
JOIN_TIME,
126+
}
127+
103128
/**
104129
* Data class for Notetaker Meeting Settings
105130
*/

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,14 @@ class NotetakersTests {
157157
@Test
158158
fun `listing notetakers calls requests with the correct params`() {
159159
val queryParams = ListNotetakersQueryParams(
160+
state = Notetaker.NotetakerState.SCHEDULED,
161+
joinTimeStart = 1234567890,
162+
joinTimeEnd = 1234567899,
160163
limit = 10,
161164
pageToken = "abc-123",
162165
select = "id,updated_at",
166+
orderDirection = Notetaker.OrderDirection.ASC,
167+
orderField = Notetaker.OrderField.NAME,
163168
)
164169

165170
notetakers.list(queryParams, grantId)

0 commit comments

Comments
 (0)