wake-ios/wake/View/Owner/UserInfo/UserService.swift
2025-08-21 19:40:29 +08:00

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)
}
}
}