// // GroupAPI.swift // QuickLocation // // Created by 八条 on 2026/6/1. // import Moya import SwiftyUserDefaults internal import Alamofire /// 圈子相关API enum GroupAPI { /// 圈子信息 case groupInfo /// 圈子类型模板 case groupTemplates /// 指定圈子的资料及成员 case groupUsers(groupKey: String) /// 圈子操作(创建、解散、设为默认等) /// - Parameters: /// - opType: create、dismiss、setdefault /// - requestData:[String: Any] 根据操作传入对应的值 case operate(opType: String, requestData: [String: Any]) } extension GroupAPI: MultiTargetProtocol { var path: String { switch self { case .groupInfo: return "mapi/user/fullinfo" case .groupTemplates: return "mapi/group/template" case .groupUsers: return "mapi/group/users" case .operate: return "mapi/group/operate" } } var method: Moya.Method { switch self { case .groupInfo, .groupTemplates, .groupUsers: return .get default: return .post } } var task: Moya.Task { switch self { case .groupInfo: return .requestParameters(parameters: Parameters(), encoding: URLEncoding()) case .groupTemplates: return .requestPlain case let .groupUsers(groupKey): return .requestParameters(parameters: ["group_key": groupKey], encoding: URLEncoding()) case let .operate(opType, requestData): var params = Parameters() params["op_type"] = opType params.merge(requestData) { _, new in new } return .requestParameters(parameters: params, encoding: JSONEncoding()) } } }