NetWorkUtils.swift 2.31 KB
import GeneralUtils
import Foundation
import Alamofire

extension NetWorkUtils {

    /**
    The JSONEncoding type creates a JSON representation of the parameters object, which is set as the HTTP body of the request. The Content-Type HTTP header field of an encoded request is set to application/json.

    */
    public static func excutePostTypeRawJSONEncoding(parameters: Parameters, url: String, isShowProgress: Bool? = nil, vc: UIViewController? = nil,
                                                     responseStringParam: @escaping (DataResponse<String>) -> Void) {
        NetWorkUtils.excutePost(parameters: parameters, url: url, isShowProgress: isShowProgress, vc: vc, encoding: JSONEncoding.default, responseStringParam: responseStringParam)
    }

    public static func excutePostTypeFormURLEncoded(parameters: Parameters, url: String, isShowProgress: Bool? = nil, vc: UIViewController? = nil,
                                                    responseStringParam: @escaping (DataResponse<String>) -> Void) {
        NetWorkUtils.excutePost(parameters: parameters, url: url, isShowProgress: isShowProgress, vc: vc, encoding: URLEncoding.default, responseStringParam: responseStringParam)
    }

    public static func excutePostTypePropertyListEncoding(parameters: Parameters, url: String, isShowProgress: Bool? = nil, vc: UIViewController? = nil,
                                                    responseStringParam: @escaping (DataResponse<String>) -> Void) {
        NetWorkUtils.excutePost(parameters: parameters, url: url, isShowProgress: isShowProgress, vc: vc, encoding: PropertyListEncoding.default, responseStringParam: responseStringParam)
    }

    public static func excutePost(parameters: Parameters, url: String, isShowProgress: Bool? = nil, vc: UIViewController? = nil, encoding: ParameterEncoding,
                                       responseStringParam: @escaping (DataResponse<String>) -> Void) {
        if isShowProgress == true {
            vc?.showWaitOverlay(isBlockTouch: true)
        }
        Alamofire.request(url, method: .post, parameters: parameters, encoding: encoding)
                .responseString { response in
                    if isShowProgress == true {
                        vc?.removeAllOverlays()
                    }
                    responseStringParam(response)
                }
    }
}