@@ -41,13 +41,41 @@ public extension OpenAI {
41
41
. eraseToAnyPublisher ( )
42
42
}
43
43
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
+
44
58
func createTranslation( from payload: CreateTranslationPayload ) -> AnyPublisher < Translation , OpenAIError > {
45
59
audioProvider. requestPublisher ( for: . createTranslation( payload: payload) )
46
60
. map { $0. data }
47
61
. map ( to: Translation . self, decoder: OpenAI . defaultDecoder)
48
62
. eraseToAnyPublisher ( )
49
63
}
50
64
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
+
51
79
}
52
80
53
81
// MARK: - Concurrency
@@ -62,6 +90,10 @@ public extension OpenAI {
62
90
try await createTranscription ( from: payload) . async ( )
63
91
}
64
92
93
+ func createTranscription( from payload: CreateTranscriptionPayload ) async throws -> String {
94
+ try await createTranscription ( from: payload) . async ( )
95
+ }
96
+
65
97
func createTranslation( from payload: CreateTranslationPayload ) async throws -> Translation {
66
98
try await createTranslation ( from: payload) . async ( )
67
99
}
0 commit comments