@@ -41,13 +41,41 @@ public extension OpenAI {
4141 . eraseToAnyPublisher ( )
4242 }
4343
44+ func createTranscription( from payload: CreateTranscriptionPayload ) -> AnyPublisher < String , OpenAIError > {
45+ audioProvider. requestPublisher ( for: . createTranscription( payload: payload) )
46+ . flatMap {
47+ guard let stringData = String ( data: $0. data, encoding: . utf8) else {
48+ return Fail < String , OpenAIError > ( error: . requestCreationFailed)
49+ . eraseToAnyPublisher ( )
50+ }
51+ return Just < String > ( stringData)
52+ . setFailureType ( to: OpenAIError . self)
53+ . eraseToAnyPublisher ( )
54+ }
55+ . eraseToAnyPublisher ( )
56+ }
57+
4458 func createTranslation( from payload: CreateTranslationPayload ) -> AnyPublisher < Translation , OpenAIError > {
4559 audioProvider. requestPublisher ( for: . createTranslation( payload: payload) )
4660 . map { $0. data }
4761 . map ( to: Translation . self, decoder: OpenAI . defaultDecoder)
4862 . eraseToAnyPublisher ( )
4963 }
5064
65+ func createTranslation( from payload: CreateTranslationPayload ) -> AnyPublisher < String , OpenAIError > {
66+ audioProvider. requestPublisher ( for: . createTranslation( payload: payload) )
67+ . flatMap {
68+ guard let stringData = String ( data: $0. data, encoding: . utf8) else {
69+ return Fail < String , OpenAIError > ( error: . requestCreationFailed)
70+ . eraseToAnyPublisher ( )
71+ }
72+ return Just < String > ( stringData)
73+ . setFailureType ( to: OpenAIError . self)
74+ . eraseToAnyPublisher ( )
75+ }
76+ . eraseToAnyPublisher ( )
77+ }
78+
5179}
5280
5381// MARK: - Concurrency
@@ -62,8 +90,16 @@ public extension OpenAI {
6290 try await createTranscription ( from: payload) . async ( )
6391 }
6492
93+ func createTranscription( from payload: CreateTranscriptionPayload ) async throws -> String {
94+ try await createTranscription ( from: payload) . async ( )
95+ }
96+
6597 func createTranslation( from payload: CreateTranslationPayload ) async throws -> Translation {
6698 try await createTranslation ( from: payload) . async ( )
6799 }
68100
101+ func createTranslation( from payload: CreateTranslationPayload ) async throws -> String {
102+ try await createTranslation ( from: payload) . async ( )
103+ }
104+
69105}
0 commit comments