feat(gift): 선물 API 저장소를 추가한다
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import Foundation
|
||||
|
||||
import Moya
|
||||
|
||||
enum GiftApi {
|
||||
case getFormOptions
|
||||
case create(request: CreateGiftRequest)
|
||||
case getGifts(page: Int, size: Int)
|
||||
case getGift(applicationNo: String)
|
||||
case cancel(applicationNo: String)
|
||||
case registerTracking(applicationNo: String, request: RegisterGiftTrackingRequest)
|
||||
case submitRecipientAddress(applicationNo: String, request: SubmitGiftRecipientAddressRequest)
|
||||
}
|
||||
|
||||
extension GiftApi: TargetType {
|
||||
var baseURL: URL {
|
||||
return URL(string: BASE_URL)!
|
||||
}
|
||||
|
||||
var path: String {
|
||||
switch self {
|
||||
case .getFormOptions:
|
||||
return "/api/v2/gifts/form-options"
|
||||
case .create, .getGifts:
|
||||
return "/api/v2/gifts"
|
||||
case .getGift(let applicationNo):
|
||||
return "/api/v2/gifts/\(applicationNo)"
|
||||
case .cancel(let applicationNo):
|
||||
return "/api/v2/gifts/\(applicationNo)/cancel"
|
||||
case .registerTracking(let applicationNo, _):
|
||||
return "/api/v2/gifts/\(applicationNo)/tracking"
|
||||
case .submitRecipientAddress(let applicationNo, _):
|
||||
return "/api/v2/gifts/\(applicationNo)/recipient-address"
|
||||
}
|
||||
}
|
||||
|
||||
var method: Moya.Method {
|
||||
switch self {
|
||||
case .getFormOptions, .getGifts, .getGift:
|
||||
return .get
|
||||
case .create, .cancel, .registerTracking, .submitRecipientAddress:
|
||||
return .post
|
||||
}
|
||||
}
|
||||
|
||||
var task: Moya.Task {
|
||||
switch self {
|
||||
case .getFormOptions, .getGift, .cancel:
|
||||
return .requestPlain
|
||||
case .create(let request):
|
||||
return .requestJSONEncodable(request)
|
||||
case .getGifts(let page, let size):
|
||||
return .requestParameters(
|
||||
parameters: [
|
||||
"type": "ALL",
|
||||
"page": page,
|
||||
"size": size
|
||||
],
|
||||
encoding: URLEncoding.queryString
|
||||
)
|
||||
case .registerTracking(_, let request):
|
||||
return .requestJSONEncodable(request)
|
||||
case .submitRecipientAddress(_, let request):
|
||||
return .requestJSONEncodable(request)
|
||||
}
|
||||
}
|
||||
|
||||
var headers: [String: String]? {
|
||||
return ["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user