Files
sodalive-ios/SodaLive/Sources/Extensions/MoyaProviderExtension.swift
Yu Sung 0285f62ecb 언어 설정 화면 추가 및 언어 헤더 적용
설정에서 시스템/한국어/영어/일본어 선택을 지원한다.

선택 시 Accept-Language 헤더와 UI locale을 즉시 반영한다.

언어 변경 후 스플래시를 거쳐 메인으로 소프트 재시작한다.
2025-12-16 22:56:37 +09:00

42 lines
992 B
Swift

//
// MoyaProviderExtension.swift
// SodaLive
//
// Created by klaus on 2023/11/17.
//
import Moya
import Foundation
extension MoyaProvider {
convenience init() {
var plugins: [PluginType] = [
AuthPlugin(),
AcceptLanguagePlugin()
]
#if DEBUG
plugins.append(NetworkLoggerPlugin(configuration: .init(logOptions: [.requestHeaders])))
plugins.append(AcceptLanguageDebugLogger())
#endif
self.init(plugins: plugins)
}
}
final class AuthPlugin: PluginType {
func didReceive(_ result: Result<Response, MoyaError>, target: TargetType) {
switch result {
case .success(let response):
DEBUG_LOG("\(response.statusCode) \(response)")
if response.statusCode == 401 {
AppState.shared.setAppStep(step: .main)
UserDefaults.reset()
}
break
case .failure(_):
break
}
}
}