RemoteService.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import Foundation
  2. import Moya
  3. enum RemoteService {
  4. case login
  5. case upload(classifier: String, id: String, image: Data)
  6. }
  7. extension RemoteService: TargetType {
  8. var baseURL: URL { URL(string: "http://94.141.168.254:8080")! }
  9. var path: String {
  10. switch self {
  11. case .login:
  12. return "login"
  13. case .upload:
  14. return "upload"
  15. }
  16. }
  17. var method: Moya.Method {
  18. switch self {
  19. case .login:
  20. return .post
  21. case .upload:
  22. return .post
  23. }
  24. }
  25. var sampleData: Data {
  26. Data()
  27. }
  28. var task: Task {
  29. switch self {
  30. case .login:
  31. return .requestPlain
  32. case let .upload(classifier, id, image):
  33. return .uploadMultipart(
  34. [
  35. .init(provider: .data(classifier.data(using: .utf8)!), name: "classifier"),
  36. .init(provider: .data(id.data(using: .utf8)!), name: "id"),
  37. .init(
  38. provider: .data(image),
  39. name: "image",
  40. fileName: "image.jpeg",
  41. mimeType: "image/jpeg"
  42. )
  43. ]
  44. )
  45. }
  46. }
  47. var headers: [String: String]? {
  48. switch self {
  49. case .login:
  50. return ["Content-type": "application/json"]
  51. case .upload:
  52. return ["Content-type": "multipart/form-data"]
  53. }
  54. }
  55. }