GuruAnalytics_iOS/GuruAnalytics/Classes/Internal/Network/APIService.swift

79 lines
1.5 KiB
Swift

//
// APIService.swift
// GuruAnalytics_iOS
//
// Created by mayue on 2022/11/8.
//
import Foundation
import Alamofire
internal enum APIService {}
extension APIService {
enum Backend: CaseIterable {
case event
case systemTime
}
}
extension APIService.Backend {
var scheme: String {
return "https"
}
var host: String {
switch self {
case .systemTime:
return "saas.castbox.fm"
case .event:
return UserDefaults.eventsServerHost ?? "collect.saas.castbox.fm"
}
}
var urlComponents: URLComponents {
var urlC = URLComponents()
urlC.host = self.host
urlC.scheme = self.scheme
urlC.path = self.path
return urlC
}
var path: String {
switch self {
case .event:
return "/event"
case .systemTime:
return "/tool/api/v1/system/time"
}
}
var method: HTTPMethod {
switch self {
case .event:
return .post
case .systemTime:
return .get
}
}
var headers: HTTPHeaders {
HTTPHeaders(
["Content-Type": "application/json",
"Content-Encoding": "gzip",
"x_event_type": "event"]
)
}
var version: Int {
///
switch self {
case .event:
return 10
case .systemTime:
return 0
}
}
}