125 lines
3.2 KiB
Swift
125 lines
3.2 KiB
Swift
//
|
|
// CanApi.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 2023/08/10.
|
|
//
|
|
|
|
import Foundation
|
|
import Moya
|
|
|
|
enum CanApi {
|
|
case getCanStatus
|
|
case getCanChargeStatus
|
|
case getCanUseStatus
|
|
case getCans
|
|
|
|
case chargeCan(request: CanChargeRequest)
|
|
case verify(request: CanVerifyRequest)
|
|
|
|
case pgChargeCan(request: PgChargeRequest)
|
|
case pgVerify(request: PgVerifyRequest)
|
|
case pgVerifyHecto(request: PgVerifyRequest)
|
|
|
|
case useCanCoupon(request: UseCanCouponRequest)
|
|
}
|
|
|
|
extension CanApi: TargetType {
|
|
var baseURL: URL {
|
|
return URL(string: BASE_URL)!
|
|
}
|
|
|
|
var path: String {
|
|
switch self {
|
|
case .getCanStatus:
|
|
return "/can/status"
|
|
|
|
case .getCanChargeStatus:
|
|
return "/can/status/charge"
|
|
|
|
case .getCanUseStatus:
|
|
return "/can/status/use"
|
|
|
|
case .getCans:
|
|
return "/can"
|
|
|
|
case .chargeCan:
|
|
return "/charge/apple"
|
|
|
|
case .verify:
|
|
return "/charge/apple/verify"
|
|
|
|
case .pgChargeCan:
|
|
return "/charge"
|
|
|
|
case .pgVerify:
|
|
return "/charge/verify"
|
|
|
|
case .pgVerifyHecto:
|
|
return "/charge/verify/hecto"
|
|
|
|
case .useCanCoupon:
|
|
return "/can/coupon/use"
|
|
}
|
|
}
|
|
|
|
var method: Moya.Method {
|
|
switch self {
|
|
case .getCanStatus, .getCanChargeStatus, .getCanUseStatus, .getCans:
|
|
return .get
|
|
|
|
case .chargeCan, .verify, .pgChargeCan, .pgVerify, .pgVerifyHecto, .useCanCoupon:
|
|
return .post
|
|
}
|
|
}
|
|
|
|
var task: Task {
|
|
switch self {
|
|
case .getCanStatus:
|
|
return .requestParameters(
|
|
parameters: ["container" : "ios"],
|
|
encoding: URLEncoding.queryString
|
|
)
|
|
|
|
case .getCanChargeStatus, .getCanUseStatus:
|
|
return .requestParameters(
|
|
parameters: [
|
|
"timezone": TimeZone.current.identifier,
|
|
"page": 0,
|
|
"size": 30,
|
|
"container": "ios"
|
|
],
|
|
encoding: URLEncoding.queryString
|
|
)
|
|
|
|
case .getCans:
|
|
return .requestPlain
|
|
|
|
case .chargeCan(let request):
|
|
return .requestJSONEncodable(request)
|
|
|
|
case .verify(let request):
|
|
return .requestJSONEncodable(request)
|
|
|
|
case .pgChargeCan(let request):
|
|
return .requestJSONEncodable(request)
|
|
|
|
case .pgVerify(let request):
|
|
return .requestJSONEncodable(request)
|
|
|
|
case .pgVerifyHecto(let request):
|
|
return .requestJSONEncodable(request)
|
|
|
|
case .useCanCoupon(let request):
|
|
return .requestJSONEncodable(request)
|
|
}
|
|
}
|
|
|
|
var headers: [String : String]? {
|
|
switch self {
|
|
default:
|
|
return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]
|
|
}
|
|
}
|
|
}
|