94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  RouletteApi.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2023/12/06.
 | 
						|
//
 | 
						|
 | 
						|
import Foundation
 | 
						|
import Moya
 | 
						|
 | 
						|
enum RouletteApi {
 | 
						|
    case getRoulette(creatorId: Int)
 | 
						|
    case getAllRoulette(creatorId: Int)
 | 
						|
    case createRoulette(request: CreateRouletteRequest)
 | 
						|
    case updateRoulette(request: UpdateRouletteRequest)
 | 
						|
    case spinRoulette(request: SpinRouletteRequest)
 | 
						|
    case refundRouletteDonation(roomId: Int)
 | 
						|
}
 | 
						|
 | 
						|
extension RouletteApi: TargetType {
 | 
						|
    var baseURL: URL {
 | 
						|
        return URL(string: BASE_URL)!
 | 
						|
    }
 | 
						|
    
 | 
						|
    var path: String {
 | 
						|
        switch self {
 | 
						|
        case .getRoulette, .createRoulette, .updateRoulette:
 | 
						|
            return "/v2/roulette"
 | 
						|
            
 | 
						|
        case .getAllRoulette:
 | 
						|
            return "/v2/roulette/creator"
 | 
						|
            
 | 
						|
        case .spinRoulette:
 | 
						|
            return "/v2/roulette/spin"
 | 
						|
            
 | 
						|
        case .refundRouletteDonation(let roomId):
 | 
						|
            return "/v2/roulette/refund/\(roomId)"
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    var method: Moya.Method {
 | 
						|
        switch self {
 | 
						|
        case .getRoulette, .getAllRoulette:
 | 
						|
            return .get
 | 
						|
            
 | 
						|
        case .createRoulette, .spinRoulette, .refundRouletteDonation:
 | 
						|
            return .post
 | 
						|
            
 | 
						|
        case .updateRoulette:
 | 
						|
            return .put
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    var task: Moya.Task {
 | 
						|
        switch self {
 | 
						|
        case .getRoulette(let creatorId):
 | 
						|
            let parameters = [
 | 
						|
                "creatorId": creatorId
 | 
						|
            ] as [String : Any]
 | 
						|
            
 | 
						|
            return .requestParameters(
 | 
						|
                parameters: parameters,
 | 
						|
                encoding: URLEncoding.queryString
 | 
						|
            )
 | 
						|
            
 | 
						|
        case .getAllRoulette(let creatorId):
 | 
						|
            let parameters = [
 | 
						|
                "creatorId": creatorId
 | 
						|
            ] as [String : Any]
 | 
						|
            
 | 
						|
            return .requestParameters(
 | 
						|
                parameters: parameters,
 | 
						|
                encoding: URLEncoding.queryString
 | 
						|
            )
 | 
						|
            
 | 
						|
        case .createRoulette(let request):
 | 
						|
            return .requestJSONEncodable(request)
 | 
						|
            
 | 
						|
        case .updateRoulette(let request):
 | 
						|
            return .requestJSONEncodable(request)
 | 
						|
            
 | 
						|
        case .spinRoulette(let request):
 | 
						|
            return .requestJSONEncodable(request)
 | 
						|
            
 | 
						|
        case .refundRouletteDonation:
 | 
						|
            return .requestPlain
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    var headers: [String : String]? {
 | 
						|
        return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]
 | 
						|
    }
 | 
						|
}
 |