Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions examples/src/main/java/com/nylas/examples/NotetakerExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -217,13 +217,23 @@ private static void getNotetakerMedia(NylasClient nylas, String notetakerId) thr
if (media.getData().getRecording() != null) {
System.out.println("Recording:");
System.out.println(" • URL: " + media.getData().getRecording().getUrl());
System.out.println(" • Size: " + media.getData().getRecording().getSize() + " MB");
System.out.println(" • Size: " + (media.getData().getRecording().getSize() / (1024.0 * 1024.0)) + " MB");
System.out.println(" • Name: " + media.getData().getRecording().getName());
System.out.println(" • Type: " + media.getData().getRecording().getType());
System.out.println(" • Created At: " + media.getData().getRecording().getCreatedAt());
System.out.println(" • Expires At: " + media.getData().getRecording().getExpiresAt());
System.out.println(" • TTL: " + media.getData().getRecording().getTtl() + " seconds");
}

if (media.getData().getTranscript() != null) {
System.out.println("Transcript:");
System.out.println(" • URL: " + media.getData().getTranscript().getUrl());
System.out.println(" • Size: " + media.getData().getTranscript().getSize() + " MB");
System.out.println(" • Size: " + (media.getData().getTranscript().getSize() / (1024.0 * 1024.0)) + " MB");
System.out.println(" • Name: " + media.getData().getTranscript().getName());
System.out.println(" • Type: " + media.getData().getTranscript().getType());
System.out.println(" • Created At: " + media.getData().getTranscript().getCreatedAt());
System.out.println(" • Expires At: " + media.getData().getTranscript().getExpiresAt());
System.out.println(" • TTL: " + media.getData().getTranscript().getTtl() + " seconds");
}
}

Expand Down
64 changes: 62 additions & 2 deletions src/main/kotlin/com/nylas/models/Notetaker.kt
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,40 @@ data class NotetakerMediaResponse(
val url: String,

/**
* The size of the file, in MB
* The size of the file, in bytes
*/
@Json(name = "size")
val size: Int,

/**
* The file name
*/
@Json(name = "name")
val name: String,

/**
* The file type/MIME type
*/
@Json(name = "type")
val type: String,

/**
* When the file was created (Unix timestamp)
*/
@Json(name = "created_at")
val createdAt: Long,

/**
* When the file will expire (Unix timestamp)
*/
@Json(name = "expires_at")
val expiresAt: Long,

/**
* Time-to-live in seconds until the file will be deleted off Nylas' storage server
*/
@Json(name = "ttl")
val ttl: Int,
)

/**
Expand All @@ -191,9 +221,39 @@ data class NotetakerMediaResponse(
val url: String,

/**
* The size of the file, in MB
* The size of the file, in bytes
*/
@Json(name = "size")
val size: Int,

/**
* The file name
*/
@Json(name = "name")
val name: String,

/**
* The file type/MIME type
*/
@Json(name = "type")
val type: String,

/**
* When the file was created (Unix timestamp)
*/
@Json(name = "created_at")
val createdAt: Long,

/**
* When the file will expire (Unix timestamp)
*/
@Json(name = "expires_at")
val expiresAt: Long,

/**
* Time-to-live in seconds until the file will be deleted off Nylas' storage server
*/
@Json(name = "ttl")
val ttl: Int,
)
}
50 changes: 50 additions & 0 deletions src/test/kotlin/com/nylas/resources/NotetakersTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,56 @@ class NotetakersTests {
assertEquals(true, notetaker.meetingSettings?.transcription)
}

@Test
fun `NotetakerMediaResponse serializes properly`() {
val adapter = JsonHelper.moshi().adapter(NotetakerMediaResponse::class.java)
val jsonBuffer = Buffer().writeUtf8(
"""
{
"recording": {
"size": 21550491,
"name": "meeting_recording.mp4",
"type": "video/mp4",
"created_at": 1744222418,
"expires_at": 1744481618,
"url": "url_for_recording",
"ttl": 259106
},
"transcript": {
"size": 862,
"name": "raw_transcript.json",
"type": "application/json",
"created_at": 1744222418,
"expires_at": 1744481618,
"url": "url_for_transcript",
"ttl": 259106
}
}
""".trimIndent(),
)

val mediaResponse = adapter.fromJson(jsonBuffer)!!
assertIs<NotetakerMediaResponse>(mediaResponse)

// Check recording
assertEquals(21550491, mediaResponse.recording?.size)
assertEquals("meeting_recording.mp4", mediaResponse.recording?.name)
assertEquals("video/mp4", mediaResponse.recording?.type)
assertEquals(1744222418, mediaResponse.recording?.createdAt)
assertEquals(1744481618, mediaResponse.recording?.expiresAt)
assertEquals("url_for_recording", mediaResponse.recording?.url)
assertEquals(259106, mediaResponse.recording?.ttl)

// Check transcript
assertEquals(862, mediaResponse.transcript?.size)
assertEquals("raw_transcript.json", mediaResponse.transcript?.name)
assertEquals("application/json", mediaResponse.transcript?.type)
assertEquals(1744222418, mediaResponse.transcript?.createdAt)
assertEquals(1744481618, mediaResponse.transcript?.expiresAt)
assertEquals("url_for_transcript", mediaResponse.transcript?.url)
assertEquals(259106, mediaResponse.transcript?.ttl)
}

@Test
fun `DeleteResponse serializes properly`() {
val adapter = JsonHelper.moshi().adapter(DeleteResponse::class.java)
Expand Down
Loading