feat(chat-original): ChatTabView 작품별 탭 및 리스트 UI/API 연동 추가
This commit is contained in:
		
							
								
								
									
										59
									
								
								SodaLive/Sources/Chat/Original/OriginalWorkApi.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								SodaLive/Sources/Chat/Original/OriginalWorkApi.swift
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
//
 | 
			
		||||
//  OriginalWorkApi.swift
 | 
			
		||||
//  SodaLive
 | 
			
		||||
//
 | 
			
		||||
//  Created by klaus on 9/15/25.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
import Foundation
 | 
			
		||||
import Moya
 | 
			
		||||
 | 
			
		||||
enum OriginalWorkApi {
 | 
			
		||||
    case getOriginalWorks(page: Int, size: Int)
 | 
			
		||||
    case getOriginalDetail(id: Int)
 | 
			
		||||
    case getOriginalWorkCharacters(id: Int, page: Int, size: Int)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extension OriginalWorkApi: TargetType {
 | 
			
		||||
    var baseURL: URL { URL(string: BASE_URL)! }
 | 
			
		||||
    
 | 
			
		||||
    var path: String {
 | 
			
		||||
        switch self {
 | 
			
		||||
        case .getOriginalWorks:
 | 
			
		||||
            return "/api/chat/original/list"
 | 
			
		||||
            
 | 
			
		||||
        case .getOriginalDetail(let id):
 | 
			
		||||
            return "/api/chat/original/\(id)"
 | 
			
		||||
            
 | 
			
		||||
        case .getOriginalWorkCharacters(let id, _, _):
 | 
			
		||||
            return "/api/chat/original/\(id)/characters"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    var method: Moya.Method {
 | 
			
		||||
        return .get
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    var task: Moya.Task {
 | 
			
		||||
        switch self {
 | 
			
		||||
        case .getOriginalWorks(let page, let size):
 | 
			
		||||
            return .requestParameters(
 | 
			
		||||
                parameters: ["page": page, "size": size],
 | 
			
		||||
                encoding: URLEncoding.queryString
 | 
			
		||||
            )
 | 
			
		||||
            
 | 
			
		||||
        case .getOriginalDetail:
 | 
			
		||||
            return .requestPlain
 | 
			
		||||
            
 | 
			
		||||
        case .getOriginalWorkCharacters(_, let page, let size):
 | 
			
		||||
            return .requestParameters(
 | 
			
		||||
                parameters: ["page": page, "size": size],
 | 
			
		||||
                encoding: URLEncoding.queryString
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    var headers: [String : String]? {
 | 
			
		||||
        ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user