Skip to content

Commit

Permalink
Use inheritance instead of partials to extend transcript client to re…
Browse files Browse the repository at this point in the history
…duce amount of disabled code generation
  • Loading branch information
Swimburger committed Jul 22, 2024
1 parent 4f676f4 commit 06371fc
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 15 deletions.
1 change: 0 additions & 1 deletion .fernignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ AssemblyAI/Realtime/WebSocketClient
src/AssemblyAI/AssemblyAIClient.cs
src/AssemblyAI/Files/FilesCustomClient.cs
src/AssemblyAI/Transcripts/TranscriptsCustomClient.cs
src/AssemblyAI/Transcripts/TranscriptsClient.cs
src/AssemblyAI/Transcripts/Requests/ListTranscriptParams.cs


Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -476,4 +476,6 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

.runsettings
.idea
.runsettings

Binary file added src/AssemblyAI.Test/TestData/nbc.mp3
Binary file not shown.
4 changes: 2 additions & 2 deletions src/AssemblyAI/AssemblyAIClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ public AssemblyAIClient(string? apiKey = null, ClientOptions? clientOptions = nu
clientOptions ?? new ClientOptions()
);
Files = new FilesClient(_client);
Transcripts = new TranscriptsClient(_client, this);
Transcripts = new ExtendedTranscriptsClient(_client, this);
Realtime = new RealtimeClient(_client);
Lemur = new LemurClient(_client);
}

public FilesClient Files { get; init; }

public TranscriptsClient Transcripts { get; init; }
public ExtendedTranscriptsClient Transcripts { get; init; }

public RealtimeClient Realtime { get; init; }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#nullable enable

using AssemblyAI.Core;

namespace AssemblyAI;

public partial class TranscriptsClient
public class ExtendedTranscriptsClient(RawClient client, AssemblyAIClient assemblyAIClient) : TranscriptsClient(client)
{
public Task<Transcript> SubmitAsync(FileInfo audioFile) => SubmitAsync(audioFile, new TranscriptOptionalParams());

Expand All @@ -17,7 +19,7 @@ public Task<Transcript> SubmitAsync(Stream audioFileStream) =>

public async Task<Transcript> SubmitAsync(Stream audioFileStream, TranscriptOptionalParams transcriptParams)
{
var fileUpload = await _assemblyAIClient.Files.UploadAsync(audioFileStream).ConfigureAwait(false);
var fileUpload = await assemblyAIClient.Files.UploadAsync(audioFileStream).ConfigureAwait(false);
return await SubmitAsync(new Uri(fileUpload.UploadUrl), transcriptParams).ConfigureAwait(false);
}

Expand All @@ -42,7 +44,7 @@ public Task<Transcript> TranscribeAsync(Stream audioFileStream) =>

public async Task<Transcript> TranscribeAsync(Stream audioFileStream, TranscriptOptionalParams transcriptParams)
{
var fileUpload = await _assemblyAIClient.Files.UploadAsync(audioFileStream).ConfigureAwait(false);
var fileUpload = await assemblyAIClient.Files.UploadAsync(audioFileStream).ConfigureAwait(false);
return await TranscribeAsync(new Uri(fileUpload.UploadUrl), transcriptParams).ConfigureAwait(false);
}

Expand Down Expand Up @@ -88,7 +90,7 @@ public async Task<TranscriptList> ListAsync(string listUrl)
// this would be easier to just call the given URL,
// but the raw client doesn't let us make requests to full URL
// so we'll parse the querystring and pass it to `ListAsync`.

var queryString = listUrl.Substring(listUrl.IndexOf('?') + 1)
.Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries)
.Select(k => k.Split('='))
Expand Down Expand Up @@ -116,17 +118,17 @@ public async Task<TranscriptList> ListAsync(string listUrl)
{
listTranscriptParams.BeforeId = queryString["before_id"].First();
}

if (queryString.Contains("after_id"))
{
listTranscriptParams.AfterId = queryString["after_id"].First();
}

if (queryString.Contains("throttled_only"))
{
listTranscriptParams.ThrottledOnly = bool.Parse(queryString["throttled_only"].First());
}

return await ListAsync(listTranscriptParams).ConfigureAwait(false);
}
}
6 changes: 2 additions & 4 deletions src/AssemblyAI/Transcripts/TranscriptsClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@

namespace AssemblyAI;

public partial class TranscriptsClient
public class TranscriptsClient
{
private RawClient _client;
private readonly AssemblyAIClient _assemblyAIClient;

public TranscriptsClient(RawClient client, AssemblyAIClient assemblyAIClient)
public TranscriptsClient(RawClient client)
{
_client = client;
_assemblyAIClient = assemblyAIClient;
}

/// <summary>
Expand Down

0 comments on commit 06371fc

Please sign in to comment.