1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- //
- // OOApplicationAPI.swift
- // o2app
- //
- // Created by 刘振兴 on 2018/3/12.
- // Copyright © 2018年 zone. All rights reserved.
- //
- import Foundation
- import Moya
- // MARK:- 所有调用的API枚举
- enum OOApplicationAPI {
- case applicationList
- case applicationOnlyList
- case applicationItem(String) // 更加应用获取流程列表
- case applicationItemWithFilter(String) //新版 根据应用获取流程列表 有移动端过滤 仅pc的流程不出现在这里
- case availableIdentityWithProcess(String)
- case startProcess(String, String, String) // processId identity title
- case icon(String)
- }
- // MARK:- 上下文实现
- extension OOApplicationAPI:OOAPIContextCapable {
- var apiContextKey: String {
- return "x_processplatform_assemble_surface"
- }
- }
- // MARK: - 是否需要加入x-token访问头
- extension OOApplicationAPI:OOAccessTokenAuthorizable {
- public var shouldAuthorize: Bool {
- return true
- }
- }
- extension OOApplicationAPI:TargetType {
- var baseURL: URL {
- let model = O2AuthSDK.shared.o2APIServer(context: .x_processplatform_assemble_surface)
- let baseURLString = "\(model?.httpProtocol ?? "http")://\(model?.host ?? ""):\(model?.port ?? 0)\(model?.context ?? "")"
- return URL(string: baseURLString)!
- }
-
- var path: String {
- switch self {
- case .applicationList:
- return "/jaxrs/application/list/complex"
- case .applicationOnlyList:
- return "/jaxrs/application/list"
- case .applicationItem(let appId):
- return "/jaxrs/process/list/application/\(appId)"
- case .applicationItemWithFilter(let appId):
- return "/jaxrs/process/list/application/\(appId)/filter"
- case .availableIdentityWithProcess(let processId):
- return "/jaxrs/process/list/available/identity/process/\(processId)"
- case .startProcess(let processId, _, _):
- return "/jaxrs/work/process/\(processId)"
- case .icon(let applicationId):
- return "/jaxrs/application/\(applicationId)/icon"
- }
- }
-
- var method: Moya.Method {
- switch self {
- case .startProcess(_, _, _), .applicationItemWithFilter(_):
- return .post
- default:
- return .get
- }
- }
-
- var sampleData: Data {
- return "".data(using: String.Encoding.utf8)!
- }
-
- var task: Task {
- switch self {
- case .startProcess(_, let identity, let title):
- return .requestParameters(parameters: ["identity": identity, "title": title], encoding: JSONEncoding.default)
- case .applicationItemWithFilter(_):
- let filter = O2ProcessFilter()
- filter.startableTerminal = "mobile" //移动端过滤 仅pc的流程不出现在这里
- return .requestParameters(parameters: filter.toJSON()!, encoding: JSONEncoding.default)
- default:
- return .requestPlain
- }
-
- }
-
- var headers: [String : String]? {
- return nil
- }
-
-
- }
|