Files
sodalive-ios/SodaLive/Sources/Live/Room/V2V/V2vApi.swift
Yu Sung b796f6d9c5 라이브룸 V2V 번역 자막 기능을 추가한다
라이브룸에서 진행자 언어와 기기 언어가 다를 때 자막 토글을 제공한다.
룸 정보 응답에 V2V 워커 토큰과 진행자 언어 코드를 포함한다.
Agora V2V 에이전트 참여와 종료 API 연동을 추가한다
2026-02-09 21:11:17 +09:00

54 lines
1.2 KiB
Swift

//
// V2vApi.swift
// SodaLive
//
// Created by klaus on 2/9/26.
//
import Foundation
import Moya
enum V2vApi {
case join(request: V2VJoinRequest)
case leave(agentId: String)
}
extension V2vApi: TargetType {
var baseURL: URL {
URL(string: "https://api.agora.io/api/speech-to-speech-translation/v2/")!
}
var path: String {
switch self {
case .join:
return "projects/\(AGORA_APP_ID)/join"
case .leave(let agentId):
return "projects/\(AGORA_APP_ID)/agents/\(agentId)/leave"
}
}
var method: Moya.Method {
.post
}
var task: Task {
switch self {
case .join(let request):
return .requestJSONEncodable(request)
case .leave:
return .requestPlain
}
}
var headers: [String: String]? {
let credential = "\(AGORA_CUSTOMER_ID):\(AGORA_CUSTOMER_SECRET)"
let basicToken = Data(credential.utf8).base64EncodedString()
return [
"Authorization": "Basic \(basicToken)",
"X-Request-Id": UUID().uuidString,
"Content-Type": "application/json"
]
}
}