OOAttendanceAPI.swift 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //
  2. // OOAttendanceAPI.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2018/5/16.
  6. // Copyright © 2018年 zoneland. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. import O2OA_Auth_SDK
  11. // MARK:- 所有调用的API枚举
  12. enum OOAttendanceAPI {
  13. case attendanceDetailCheckIn(OOAttandanceMobileCheckinForm) //打卡
  14. case myAttendanceDetailMobileByPage(CommonPageModel,OOAttandanceMobileQueryBean) //获取打卡数据
  15. case myWorkplace //我的打卡地点列表
  16. case addWorkplace(OOAttandanceNewWorkPlace) //增加打卡地点
  17. case delWorkplace(String) //删除打卡地点
  18. case attendanceAdmin //是否可以设置打卡地点
  19. case checkinCycle(String,String) //考勤周期
  20. case checkinTotalForMonth(OOAttandanceTotalBean) //考勤统计
  21. case checkinAnalyze(OOAttandanceTotalBean) //考勤分析
  22. case listMyRecord //当前用户当前的打卡情况和班次
  23. }
  24. // MARK:- 上下文实现
  25. extension OOAttendanceAPI:OOAPIContextCapable {
  26. var apiContextKey: String {
  27. return "x_attendance_assemble_control"
  28. }
  29. }
  30. // MARK: - 是否需要加入x-token访问头
  31. extension OOAttendanceAPI:OOAccessTokenAuthorizable {
  32. public var shouldAuthorize: Bool {
  33. return true
  34. }
  35. }
  36. extension OOAttendanceAPI:TargetType {
  37. var baseURL: URL {
  38. let model = O2AuthSDK.shared.o2APIServer(context: .x_attendance_assemble_control)
  39. let baseURLString = "\(model?.httpProtocol ?? "http")://\(model?.host ?? ""):\(model?.port ?? 0)\(model?.context ?? "")"
  40. return URL(string: baseURLString)!
  41. }
  42. var path: String {
  43. switch self {
  44. case .addWorkplace(_):
  45. return "/jaxrs/workplace"
  46. case .attendanceAdmin:
  47. return "/jaxrs/attendanceadmin/list/all"
  48. case .attendanceDetailCheckIn(_):
  49. return "/jaxrs/attendancedetail/mobile/recive"
  50. case .delWorkplace(let id):
  51. return "/jaxrs/workplace/\(id)"
  52. case .myAttendanceDetailMobileByPage(let model, _):
  53. return "/jaxrs/attendancedetail/mobile/filter/list/page/1/count/\(model.pageSize)"
  54. case .myWorkplace:
  55. return "/jaxrs/workplace/list/all"
  56. case .checkinCycle(let year, let month):
  57. return "/jaxrs/attendancestatisticalcycle/cycleDetail/\(year)/\(month)"
  58. case .checkinTotalForMonth(_):
  59. return "/jaxrs/attendancedetail/filter/list"
  60. case .checkinAnalyze(let bean):
  61. return "/jaxrs/statisticshow/person/\(bean.q_empName!)/\(bean.q_year!)/\(bean.q_month!)"
  62. case .listMyRecord:
  63. return "/jaxrs/attendancedetail/mobile/my"
  64. }
  65. }
  66. var method: Moya.Method {
  67. switch self {
  68. case .addWorkplace(_):
  69. return .post
  70. case .attendanceAdmin:
  71. return .get
  72. case .attendanceDetailCheckIn(_):
  73. return .post
  74. case .delWorkplace(_):
  75. return .delete
  76. case .myAttendanceDetailMobileByPage(_, _):
  77. return .put
  78. case .myWorkplace:
  79. return .get
  80. case .checkinCycle(_, _):
  81. return .get
  82. case .checkinTotalForMonth(_):
  83. return .put
  84. case .checkinAnalyze(_):
  85. return .get
  86. case .listMyRecord:
  87. return .get
  88. }
  89. }
  90. var sampleData: Data {
  91. return "".data(using: String.Encoding.utf8)!
  92. }
  93. var task: Task {
  94. switch self {
  95. case .addWorkplace(let bean):
  96. return .requestParameters(parameters: bean.toJSON() ?? [:], encoding: JSONEncoding.default)
  97. case .attendanceAdmin:
  98. return .requestPlain
  99. case .attendanceDetailCheckIn(let bean):
  100. return .requestParameters(parameters: bean.toJSON() ?? [:], encoding: JSONEncoding.default)
  101. case .delWorkplace(_):
  102. return .requestPlain
  103. case .myAttendanceDetailMobileByPage(_,let bean):
  104. return .requestParameters(parameters: bean.toJSON() ?? [:], encoding: JSONEncoding.default)
  105. case .myWorkplace:
  106. return .requestPlain
  107. case .checkinCycle(_,_):
  108. return .requestPlain
  109. case .checkinTotalForMonth(let bean):
  110. return .requestParameters(parameters: bean.toJSON() ?? [:], encoding: JSONEncoding.default)
  111. case .checkinAnalyze(_):
  112. return .requestPlain
  113. case .listMyRecord:
  114. return .requestPlain
  115. }
  116. }
  117. var headers: [String : String]? {
  118. return nil
  119. }
  120. }