72 lines
2.2 KiB
Swift
72 lines
2.2 KiB
Swift
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))"]
|
|
}
|
|
}
|