44 lines
1.4 KiB
Swift
44 lines
1.4 KiB
Swift
import Foundation
|
|
import os.log
|
|
|
|
// MARK: - Request/Response Models
|
|
struct UpdateUsernameRequest: Codable {
|
|
let username: String
|
|
let userId: String
|
|
}
|
|
|
|
struct UpdateUsernameResponse: Codable {
|
|
let success: Bool
|
|
let message: String?
|
|
}
|
|
|
|
// MARK: - UserService
|
|
class UserService {
|
|
static let shared = UserService()
|
|
private let networkService = NetworkService.shared
|
|
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.example.app", category: "UserService")
|
|
|
|
private init() {}
|
|
|
|
func updateUsername(_ username: String, userId: String, completion: @escaping (Result<UpdateUsernameResponse, NetworkError>) -> Void) {
|
|
let parameters: [String: Any] = [
|
|
"username": username,
|
|
"avatar_file_id": userId
|
|
]
|
|
|
|
logger.info("🔄 开始更新用户信息: 用户名=\(username), 头像ID=\(userId)")
|
|
|
|
networkService.postWithToken(
|
|
path: "/iam/user/info",
|
|
parameters: parameters
|
|
) { [weak self] (result: Result<UpdateUsernameResponse, NetworkError>) in
|
|
switch result {
|
|
case .success(let response):
|
|
self?.logger.info("✅ 用户信息更新成功: \(response.message ?? "")")
|
|
case .failure(let error):
|
|
self?.logger.error("❌ 用户信息更新失败: \(error.localizedDescription)")
|
|
}
|
|
completion(result)
|
|
}
|
|
}
|
|
} |