Skip to content

Commit

Permalink
add tests, example docs and missing import
Browse files Browse the repository at this point in the history
  • Loading branch information
armandobelardo committed Feb 28, 2024
1 parent 8eac017 commit 88fffba
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 5 deletions.
1 change: 1 addition & 0 deletions lib/assemblyai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
require_relative "assemblyai/files/client"
require_relative "assemblyai/transcripts/client"
require_relative "assemblyai/transcripts/polling_client"
require_relative "assemblyai/transcripts/list_by_url_client"
require_relative "assemblyai/realtime/client"
require_relative "assemblyai/lemur/client"

Expand Down
14 changes: 13 additions & 1 deletion lib/assemblyai/transcripts/list_by_url_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,16 @@ module AssemblyAI

# :nodoc:
class TranscriptsClient
# Retrieve a list of transcripts you created
# Retrieve a list of transcripts you created, this is used for pagination to easily retrieve the next page of transcripts
#
# @param url [String] The URL to retrieve the transcript list from
# @param request_options [RequestOptions]
# @return [Transcripts::TranscriptList]
#
# @example Retrieve the next page of results
# client = AssemblyAI::Client.new(api_key: "YOUR_API_KEY")
# transcript_list = client.transcripts.list(limit: 1)
# client.transcripts.list_by_url(url: transcript_list.page_details.next_url)
def list_by_url(url: nil, request_options: nil)
if url.nil?
url = "/v2/transcript"
Expand All @@ -34,6 +39,13 @@ class AsyncTranscriptsClient
# @param url [String] The URL to retrieve the transcript list from
# @param request_options [RequestOptions]
# @return [Transcripts::TranscriptList]
#
# @example Retrieve the next page of results
# client = AssemblyAI::AsyncClient.new(api_key: "YOUR_API_KEY")
# Sync do
# transcript_list = client.transcripts.list(limit: 1).wait
# client.transcripts.list_by_url(url: transcript_list.page_details.next_url)
# end
def list_by_url(url: nil, request_options: nil)
Async do
if url.nil?
Expand Down
31 changes: 27 additions & 4 deletions test/test_assemblyai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,35 @@

# Basic AssemblyAI tests
class TestAssemblyAI < Minitest::Test
def test_pagination
client = AssemblyAI::Client.new(api_key: "YOUR API KEY")
transcript_list = client.transcripts.list

count = 0
client.transcripts.list.transcripts.each do |transcript|
assert !transcript.id.nil?
count += 1
end
assert count.positive?

while transcript_list.page_details.next_url
transcript_list = client.transcripts.list_by_url(url: transcript_list.page_details.next_url)

count = 0
client.transcripts.list.transcripts.each do |transcript|
assert !transcript.id.nil?
count += 1
end
assert count.positive?
end
end

def test_polling
client = AssemblyAI::Client.new(api_key: "YOUR_API_KEY")
client = AssemblyAI::Client.new(api_key: "YOUR API KEY")
transcript = client.transcripts.transcribe(audio_url: "https://storage.googleapis.com/aai-web-samples/espn-bears.m4a")
assert transcript.status == AssemblyAI::Transcripts::TranscriptStatus::COMPLETED

client = AssemblyAI::AsyncClient.new(api_key: "YOUR_API_KEY")
client = AssemblyAI::AsyncClient.new(api_key: "YOUR API KEY")
Sync do
transcript_task = client.transcripts.transcribe(audio_url: "https://storage.googleapis.com/aai-web-samples/espn-bears.m4a")
assert transcript_task.is_a? Async::Task
Expand All @@ -21,7 +44,7 @@ def test_polling

def test_transcribe
# Transcribe
client = AssemblyAI::Client.new(api_key: "YOUR_API_KEY")
client = AssemblyAI::Client.new(api_key: "YOUR API KEY")

transcript_submission = client.transcripts.submit(audio_url: "https://storage.googleapis.com/aai-web-samples/espn-bears.m4a")
assert !transcript_submission.id.nil?
Expand All @@ -37,7 +60,7 @@ def test_transcribe
end

def test_lemur
client = AssemblyAI::Client.new(api_key: "YOUR_API_KEY")
client = AssemblyAI::Client.new(api_key: "YOUR API KEY")
assert !client.lemur.summary(transcript_ids: ["369849ed-b5a1-4add-9dde-ac936d3e7b99"]).response.nil?

assert !client.lemur.question_answer(transcript_ids: ["369849ed-b5a1-4add-9dde-ac936d3e7b99"], questions: [{question: "What are they discussing?", answer_format: "text"}]).response.nil?
Expand Down

0 comments on commit 88fffba

Please sign in to comment.