Veloria/Veloria/Base/Networking/API/VPStatAPI.swift
2025-08-14 11:28:13 +08:00

167 lines
4.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.

//
// VPStatAPI.swift
// Veloria
//
// Created by on 2025/6/6.
//
import UIKit
class VPStatAPI: NSObject {
enum ErrorEventKey: String {
case payCallback = "pay_callback" //
case payRestore = "pay_restore" //restore
case payCancel = "pay_cancel" //
case payError = "pay_error" //
}
///APP
static func requestEnterApp() {
var param = VPNetworkParameters(path: "/customer/enterTheApp")
param.isToast = false
param.isLoding = false
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
}
///APP
static func requestLeaveApp() {
var param = VPNetworkParameters(path: "/customer/leaveApp")
param.isToast = false
param.isLoding = false
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
}
static func requestStatOnLine() {
var param = VPNetworkParameters(path: "/customer/onLine")
param.isToast = false
param.isLoding = false
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
}
///w2a
static func requestStatW2a(data: String) {
var param = VPNetworkParameters(path: "/w2aSelfAttribution")
param.isToast = false
param.isLoding = false
param.parameters = [
"data" : data
]
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
}
}
///
static func requestStatApns(messageId: String, title: String) {
var param = VPNetworkParameters(path: "/message/sendReport")
param.isToast = false
param.isLoding = false
param.parameters = [
"message_id" : messageId,
"title" : title
]
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
}
}
///
static func requestJumpOtherApp(shortPlayId: String?, videoId: String?, jumpShortPlayId: String?) {
var parameters: [String : Any] = [:]
if let id = shortPlayId {
parameters["short_play_id"] = id
}
if let id = videoId {
parameters["video_id"] = id
}
if let id = jumpShortPlayId {
parameters["jump_short_play_id"] = id
}
var param = VPNetworkParameters(path: "/setJumpLaunchVideo")
param.isToast = false
param.isLoding = false
param.parameters = parameters
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
}
}
///广
static func requestStatAd(model: VPStatAdModel, completer: ((_ finish: Bool) -> Void)? = nil) {
var param = VPNetworkParameters(path: "/ad/history")
param.isToast = false
param.isLoding = false
param.parameters = model.toDictionary()
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
if response.code == VPNetworkCodeSucceed {
completer?(true)
} else {
completer?(false)
}
}
}
static func requestStatError(orderCode: String?, shortPlayId: String?, videoId: String?, eventKey: ErrorEventKey, errorMsg: String?, otherParamenters: [String : Any]? = nil) {
var eventName = ""
switch eventKey {
case .payCallback:
eventName = "pay callback failed"
case .payRestore:
eventName = "pay restore"
case .payCancel:
eventName = "user pay canceled"
default:
eventName = "platform pay failed"
}
var parameters: [String : Any] = [
"userId" : VPLoginManager.manager.userInfo?.customer_id ?? "",
"event_name" : eventName,
"event_key" : eventKey.rawValue,
"short_play_id" : shortPlayId ?? "0",
"short_play_video_id" : videoId ?? "0",
"order_code": orderCode ?? ""
]
if let errorMsg = errorMsg {
parameters["error_msg"] = errorMsg
}
if let otherParamenters = otherParamenters {
otherParamenters.forEach {
parameters[$0] = $1
}
}
var param = VPNetworkParameters(path: "/event/add")
param.isLoding = false
param.isToast = false
param.parameters = parameters
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
}
}
}