sodalive-ios/SodaLive/Sources/MyPage/Can/CanRepository.swift

58 lines
2.1 KiB
Swift

//
// CanRepository.swift
// SodaLive
//
// Created by klaus on 2023/08/10.
//
import Foundation
import CombineMoya
import Combine
import Moya
final class CanRepository {
private let api = MoyaProvider<CanApi>()
func getCanStatus() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getCanStatus)
}
func getCanChargeStatus() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getCanChargeStatus)
}
func getCanUseStatus() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getCanUseStatus)
}
func chargeCan(title: String, chargeCan: Int, price: Double, locale: String, paymentGateway: PaymentGateway = .APPLE_IAP) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.chargeCan(request: CanChargeRequest(title: title, chargeCan: chargeCan, paymentGateway: paymentGateway, price: price, locale: locale)))
}
func verify(receiptString: String, chargeId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.verify(request: CanVerifyRequest(receiptString: receiptString, chargeId: chargeId)))
}
func pgChargeCan(canId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.pgChargeCan(request: PgChargeRequest(canId: canId, paymentGateway: .PG)))
}
func pgVerify(receiptId: String, orderId: String) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.pgVerify(request: PgVerifyRequest(receiptId: receiptId, orderId: orderId)))
}
func pgVerifyHecto(receiptId: String, orderId: String) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.pgVerifyHecto(request: PgVerifyRequest(receiptId: receiptId, orderId: orderId)))
}
func getCans() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getCans)
}
func useCanCoupon(couponNumber: String) -> AnyPublisher<Response, MoyaError> {
let request = UseCanCouponRequest(couponNumber: couponNumber)
return api.requestPublisher(.useCanCoupon(request: request))
}
}