O2MeetingAPI.swift 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. //
  2. // O2MeetingAPI.swift
  3. // o2app
  4. //
  5. // Created by 刘振兴 on 2018/1/16.
  6. // Copyright © 2018年 zone. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. import O2OA_Auth_SDK
  11. // MARK:- 所有调用的API枚举
  12. enum O2MeetingAPI {
  13. //会议地点
  14. case buildByCreate
  15. case buildSearchByPingYin(String)
  16. case buildListByAll
  17. case buildListBySearchKey(String)
  18. case buildListByPinYinInitialSearch(String)
  19. case buildListByStartAndCompletedDate(String,String)
  20. case buildItemById(String)
  21. //会议房间
  22. case roomByCreate
  23. case roomSearchByPinYin(String)
  24. case roomListByAll
  25. case roomListBySearchKey(String)
  26. case roomListByPinYinInitialSearch(String)
  27. case roomItemById(String)
  28. //会议按年月列表
  29. case meetingListByYearMonth(String,String)
  30. case meetingListByYearMonthDay(String,String,String)
  31. case meetingListByAccept
  32. case meetingListByApplied
  33. case meetingListForDayCount(String)
  34. case meetingItemById(String)
  35. case meetingItemAcceptById(String)
  36. case meetingItemAddInvitedById(String)
  37. case meetingItemConfirmAllowById(String)
  38. case meetingItemConfirmDenyById(String)
  39. case meetingItemCompletedById(String)
  40. case meetingItemRejectById(String)
  41. case meetingItemByCreate(OOMeetingFormBean)
  42. }
  43. // MARK:- 上下文实现
  44. extension O2MeetingAPI:OOAPIContextCapable {
  45. var apiContextKey: String {
  46. return "x_meeting_assemble_control"
  47. }
  48. }
  49. // MARK: - 是否需要加入x-token访问头
  50. extension O2MeetingAPI:OOAccessTokenAuthorizable {
  51. public var shouldAuthorize: Bool {
  52. return true
  53. }
  54. }
  55. extension O2MeetingAPI:TargetType{
  56. var baseURL: URL {
  57. let model = O2AuthSDK.shared.o2APIServer(context: .x_meeting_assemble_control)
  58. let baseURLString = "\(model?.httpProtocol ?? "http")://\(model?.host ?? ""):\(model?.port ?? 0)\(model?.context ?? "")"
  59. return URL(string: baseURLString)!
  60. }
  61. var path: String {
  62. switch self {
  63. //会议地点
  64. case .buildByCreate:
  65. return "/jaxrs/building"
  66. case .buildSearchByPingYin(let pinyin):
  67. return "/jaxrs/building/list/like/pinyin/\(pinyin.urlEscaped)"
  68. case .buildListByAll:
  69. return "/jaxrs/building/list"
  70. case .buildListBySearchKey(let searchKey):
  71. return "/jaxrs/building/list/like/\(searchKey.urlEscaped)"
  72. case .buildListByPinYinInitialSearch(let pinyininitial):
  73. return "/jaxrs/building/list/pinyininitial/\(pinyininitial.urlEscaped)"
  74. case .buildListByStartAndCompletedDate(let start,let completed):
  75. return "/jaxrs/building/list/start/\(start)/completed/\(completed)"
  76. case .buildItemById(let id):
  77. return "/jaxrs/building/\(id)"
  78. //会议房间
  79. case .roomByCreate:
  80. return "/jaxrs/room"
  81. case .roomSearchByPinYin(let pinyin):
  82. return "/jaxrs/room/list/like/pinyin/\(pinyin)"
  83. case .roomListByAll:
  84. return "/jaxrs/room/list"
  85. case .roomListBySearchKey(let searchkey):
  86. return "/jaxrs/room/list/like/\(searchkey)"
  87. case .roomListByPinYinInitialSearch(let pinyininitial):
  88. return "/jaxrs/room/list/pinyininitial/\(pinyininitial)"
  89. case .roomItemById(let id):
  90. return "/jaxrs/room/\(id)"
  91. //会议按年月列表
  92. case .meetingListByYearMonth(let year,let month):
  93. return "/jaxrs/meeting/list/year/\(year)/month/\(month)"
  94. case .meetingListByYearMonthDay(let year,let month,let day):
  95. return "/jaxrs/meeting/list/year/\(year)/month/\(month)/day/\(day)"
  96. case .meetingListByAccept:
  97. return "/jaxrs/meeting/list/wait/accept"
  98. case .meetingListByApplied:
  99. return "/jaxrs/meeting/list/applied/wait"
  100. case .meetingListForDayCount(let day):
  101. return "/jaxrs/meeting/list/coming/day/\(day)"
  102. case .meetingItemById(let id):
  103. return "/jaxrs/meeting/\(id)"
  104. case .meetingItemAcceptById(let id):
  105. return "/jaxrs/meeting/\(id)/accept"
  106. case .meetingItemAddInvitedById(let id):
  107. return "/jaxrs/meeting/\(id)/add/invite"
  108. case .meetingItemConfirmAllowById(let id):
  109. return "/jaxrs/meeting/\(id)/confirm/allow"
  110. case .meetingItemConfirmDenyById(let id):
  111. return "/jaxrs/meeting/\(id)/confirm/deny"
  112. case .meetingItemCompletedById(let id):
  113. return "/jaxrs/meeting/\(id)/manual/completed"
  114. case .meetingItemRejectById(let id):
  115. return "/jaxrs/meeting/\(id)/reject"
  116. case .meetingItemByCreate(_):
  117. return "/jaxrs/meeting"
  118. }
  119. }
  120. var method: Moya.Method {
  121. switch self {
  122. //会议地点
  123. case .buildByCreate:
  124. return .put
  125. case .buildSearchByPingYin(_):
  126. return .get
  127. case .buildListByAll:
  128. return .get
  129. case .buildListBySearchKey(_):
  130. return .get
  131. case .buildListByPinYinInitialSearch(_):
  132. return .get
  133. case .buildListByStartAndCompletedDate(_,_):
  134. return .get
  135. case .buildItemById(_):
  136. return .get
  137. //会议房间
  138. case .roomByCreate:
  139. return .put
  140. case .roomSearchByPinYin(_):
  141. return .get
  142. case .roomListByAll:
  143. return .get
  144. case .roomListBySearchKey(_):
  145. return .get
  146. case .roomListByPinYinInitialSearch(_):
  147. return .get
  148. case .roomItemById(_):
  149. return .get
  150. //会议按年月列表
  151. case .meetingListByYearMonth(_,_):
  152. return .get
  153. case .meetingListByYearMonthDay(_,_,_):
  154. return .get
  155. case .meetingListByAccept:
  156. return .get
  157. case .meetingListByApplied:
  158. return .get
  159. case .meetingListForDayCount(_):
  160. return .get
  161. case .meetingItemById(_):
  162. return .get
  163. case .meetingItemAcceptById(_):
  164. return .get
  165. case .meetingItemAddInvitedById(_):
  166. return .get
  167. case .meetingItemConfirmAllowById(_):
  168. return .get
  169. case .meetingItemConfirmDenyById(_):
  170. return .get
  171. case .meetingItemCompletedById(_):
  172. return .get
  173. case .meetingItemRejectById(_):
  174. return .get
  175. case .meetingItemByCreate(_):
  176. return .post
  177. }
  178. }
  179. var sampleData: Data {
  180. return "".data(using: String.Encoding.utf8)!
  181. }
  182. var task: Task {
  183. switch self {
  184. case .meetingItemByCreate(let mBean):
  185. return .requestParameters(parameters: mBean.toJSON()!, encoding: JSONEncoding.default)
  186. default:
  187. return .requestPlain
  188. }
  189. }
  190. var headers: [String : String]? {
  191. return nil
  192. }
  193. }