//
|
// ParamsAppender.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/5/28.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import Foundation
|
import Alamofire
|
|
|
|
class APIParamsAppender: NSObject {
|
|
var params:Dictionary = [String: Any]()
|
|
override init(){
|
if !app.loginInfo.appid.isEmpty {
|
params += ["appid":"\(app.loginInfo.appid)"]
|
}
|
}
|
func interface() -> APIParamsAppender {
|
return self
|
}
|
|
func append(key: String,value: String) -> APIParamsAppender {
|
if value == ""{
|
return self
|
}else{
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
|
}
|
|
func append(key: String,value: String?) -> APIParamsAppender {
|
guard let string = value,value != "" else {
|
return self
|
}
|
params += ["\(key)":"\(string)"]
|
return self
|
}
|
|
func append(key: String, value: Int) -> APIParamsAppender {
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
|
func append(key: String, value: Int?) -> APIParamsAppender {
|
guard let value = value else {
|
return self
|
}
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
|
func append(key: String, value: Int64) -> APIParamsAppender {
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
func append(key: String, value: Double) -> APIParamsAppender {
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
func append(key: String, value: Double?) -> APIParamsAppender {
|
guard let value = value else {
|
return self
|
}
|
params += ["\(key)":"\(value)"]
|
return self
|
}
|
|
func append(key: String,data: Data) -> APIParamsAppender {
|
params += ["\(key)": data]
|
return self
|
}
|
|
func append(key: String,url: URL) -> APIParamsAppender {
|
params += ["\(key)":"\(url)"]
|
return self
|
}
|
|
func done() -> Parameters {
|
var paramsArray: [String] = []
|
// 排序
|
let sortedArray: [String] = Array(params.keys).sorted()
|
for item in sortedArray{
|
// 拼接字符串
|
if params.has(key: item){
|
paramsArray.append("\(item)=\(params[item]!)")
|
}
|
}
|
let content = paramsArray.joined(separator: "&")
|
if params.keys.contains("appid") {
|
params += ["sign": "\(content.hmacBase64(algorithm: .SHA1, key: params["appid"] as! String))"]
|
}else{
|
return params
|
|
}
|
return params
|
}
|
|
}
|