pushdeer/ios/PushDeer-iOS/PushDeer/Service/PushDeerApi.swift

170 lines
5.9 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PushDeerApi.swift
// PushDeer
//
// Created by HEXT on 2022/1/4.
//
import Foundation
import Moya
enum PushDeerApi {
case fake
/// idToken
case login(idToken: String)
/// oauth code
case wechatLogin(code: String)
///
/// | | |
/// | - | - |
/// | token | token |
/// | type | apple wechat |
/// | tokenorcode | type apple idToken code |
case mergeUser(token: String, type: String, tokenorcode: String)
case getUserInfo(token: String)
case regDevice(token: String, name: String, device_id: String, is_clip: Int)
case renameDevice(token: String, id: Int, name: String)
case getDevices(token: String)
case rmDevice(token: String, id: Int)
case genKey(token: String)
case regenKey(token: String, id: Int)
case renameKey(token: String, id: Int, name: String)
case getKeys(token: String)
case rmKey(token: String, id: Int)
/// type: =textmarkdown=imagemarkdown
case push(pushkey: String, text: String, desp: String, type: String)
case getMessages(token: String, limit: Int)
case rmMessage(token: String, id: Int)
case rmAllMessage(token: String)
case stokenLogin(stoken: String)
case stokenRegen(token: String)
case stokenRemove(token: String)
}
extension PushDeerApi: TargetType {
var baseURL: URL {
var urlStr = Env.onlineApiEndpoint
if Env.isSelfHosted && !AppState.shared.api_endpoint.isEmpty {
urlStr = AppState.shared.api_endpoint
}
return URL(string: urlStr)!
}
var path: String {
switch self {
case .fake:
return "/login/fake"
case .login:
return "/login/idtoken"
case .wechatLogin:
return "/login/wecode"
case .mergeUser:
return "/user/merge"
case .getUserInfo:
return "/user/info"
case .regDevice:
return "/device/reg"
case .renameDevice:
return "/device/rename"
case .getDevices:
return "/device/list"
case .rmDevice:
return "/device/remove"
case .genKey:
return "/key/gen"
case .regenKey:
return "/key/regen"
case .renameKey:
return "/key/rename"
case .getKeys:
return "/key/list"
case .rmKey:
return "/key/remove"
case .push:
return "/message/push"
case .getMessages:
return "/message/list"
case .rmMessage:
return "/message/remove"
case .rmAllMessage:
return "/message/clean"
case .stokenLogin:
return "/login/simple_token"
case .stokenRegen:
return "/simple_token/regen"
case .stokenRemove:
return "/simple_token/remove"
}
}
var method: Moya.Method {
switch self {
default:
return .post
}
}
var task: Task {
switch self {
case .fake:
return .requestParameters(parameters: [:], encoding: URLEncoding.queryString)
case let .login(idToken):
return .requestParameters(parameters: ["idToken": idToken], encoding: URLEncoding.queryString)
case let .wechatLogin(code):
return .requestParameters(parameters: ["code": code], encoding: URLEncoding.queryString)
case let .mergeUser(token, type, tokenorcode):
return .requestParameters(parameters: ["token": token, "type": type, "tokenorcode": tokenorcode], encoding: URLEncoding.queryString)
case let .getUserInfo(token):
return .requestParameters(parameters: ["token": token], encoding: URLEncoding.queryString)
case let .regDevice(token, name, device_id, is_clip):
return .requestParameters(parameters: ["token": token,"name": name, "device_id": device_id,"is_clip": is_clip], encoding: URLEncoding.queryString)
case let .renameDevice(token, id, name):
return .requestParameters(parameters: ["token": token,"id": id,"name": name], encoding: URLEncoding.queryString)
case let .getDevices(token):
return .requestParameters(parameters: ["token": token], encoding: URLEncoding.queryString)
case let .rmDevice(token, id):
return .requestParameters(parameters: ["token": token,"id": id], encoding: URLEncoding.queryString)
case let .genKey(token):
return .requestParameters(parameters: ["token": token], encoding: URLEncoding.queryString)
case let .regenKey(token, id):
return .requestParameters(parameters: ["token": token,"id": id], encoding: URLEncoding.queryString)
case let .renameKey(token, id, name):
return .requestParameters(parameters: ["token": token,"id": id,"name": name], encoding: URLEncoding.queryString)
case let .getKeys(token):
return .requestParameters(parameters: ["token": token],encoding: URLEncoding.queryString)
case let .rmKey(token, id):
return .requestParameters(parameters: ["token": token, "id": id],encoding: URLEncoding.queryString)
case let .push(pushkey, text, desp, type):
return .requestParameters(parameters: ["pushkey": pushkey, "text": text, "desp": desp, "type": type],encoding: URLEncoding.queryString)
case let .getMessages(token, limit):
return .requestParameters(parameters: ["token": token, "limit": limit],encoding: URLEncoding.queryString)
case let .rmMessage(token, id):
return .requestParameters(parameters: ["token": token, "id": id],encoding: URLEncoding.queryString)
case let .rmAllMessage(token):
return .requestParameters(parameters: ["token": token],encoding: URLEncoding.queryString)
case let .stokenLogin(stoken):
return .requestParameters(parameters: ["stoken": stoken],encoding: URLEncoding.queryString)
case let .stokenRegen(token):
return .requestParameters(parameters: ["token": token],encoding: URLEncoding.queryString)
case let .stokenRemove(token):
return .requestParameters(parameters: ["token": token],encoding: URLEncoding.queryString)
}
}
var headers: [String: String]? {
return ["Content-type": "application/json"]
}
}