OOError.swift 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // OOError.swift
  3. // o2app
  4. //
  5. // Created by 刘振兴 on 2017/8/24.
  6. // Copyright © 2017年 zone. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. public enum OOAppError:Swift.Error {
  11. case imageMapping(message:String,statusCode:Int,data:Data?)
  12. case jsonMapping(message:String,statusCode:Int,data:Data?)
  13. case stringMapping(message:String,statusCode:Int,data:Data?)
  14. case statusCode(message:String,statusCode:Int,data:Data?)
  15. case underlying(Swift.Error)
  16. case requestMapping(String)
  17. case common(type:String,message:String,statusCode:Int)
  18. case objectMapping(Swift.Error,Response)
  19. case encodableMapping(Swift.Error)
  20. case parameterEncoding(Swift.Error)
  21. case apiResponseError(String)
  22. }
  23. extension OOAppError:LocalizedError {
  24. public var errorDescription: String? {
  25. switch self {
  26. case .imageMapping(let msg, let statusCode, _):
  27. return "Moya.Error:imageMapping,msg=\(msg),statusCode=\(statusCode)"
  28. case .jsonMapping(let msg, let statusCode, _):
  29. return "Moya.Error:jsonMapping,msg=\(msg),statusCode=\(statusCode)"
  30. case .stringMapping(let msg, let statusCode, _):
  31. return "Moya.Error:stringMapping,msg=\(msg),statusCode=\(statusCode)"
  32. case .statusCode(let msg, let statusCode, _):
  33. return "Moya.Error:statusCode,msg=\(msg),statusCode=\(statusCode)"
  34. case .underlying(let err):
  35. return "Moya.Error:underlying,error=\(err)"
  36. case .requestMapping(let msg):
  37. return "Moya.Error:requestMapping,msg=\(msg)"
  38. case .common(let type, let msg, let statusCode):
  39. return "App.Error:type=\(type),msg=\(msg),statusCode=\(statusCode)"
  40. case .objectMapping(let err, let resp):
  41. return "Moya.Error:objectMapping,error=\(err),resp=\(resp)"
  42. case .encodableMapping(let err):
  43. return "Moya.Error:encodableMapping,error=\(err)"
  44. case .parameterEncoding(let err):
  45. return "Moay.Error:parameterEncoding,error=\(err)"
  46. case .apiResponseError(let err):
  47. return "API.Error:apiResponseError,error=\(err)"
  48. }
  49. }
  50. public var failureReason: String? {
  51. switch self {
  52. case .imageMapping(let msg,_,_):
  53. return msg
  54. case .jsonMapping(let msg, _,_):
  55. return msg
  56. case .stringMapping(let msg,_,_):
  57. return msg
  58. case .statusCode(let msg,_,_):
  59. return msg
  60. case .underlying(let err):
  61. return err.localizedDescription
  62. case .requestMapping(let msg):
  63. return msg
  64. case .common(_,let msg,_):
  65. return msg
  66. case .objectMapping(let err, let resp):
  67. return "error=\(err.localizedDescription),resp=\(resp)"
  68. case .encodableMapping(let err):
  69. return err.localizedDescription
  70. case .parameterEncoding(let err):
  71. return err.localizedDescription
  72. case .apiResponseError(let err):
  73. return err
  74. }
  75. }
  76. }
  77. public enum OOError:Swift.Error {
  78. case systemError(Swift.Error)
  79. case appError(OOAppError)
  80. }