//
// DefaultAPI.swift
//
// Generated by swagger-codegen
// https://github.com/swagger-api/swagger-codegen
//

import Foundation
import Alamofire



open class DefaultAPI {
    /**
     test_mock_1_basic
     
     - parameter param1: (query) testing params 
     - parameter completion: completion handler to receive the data and the error objects
     */
    open class func mockGet(param1: String, completion: @escaping ((_ data: InlineResponse200?,_ error: Error?) -> Void)) {
        mockGetWithRequestBuilder(param1: param1).execute { (response, error) -> Void in
            completion(response?.body, error)
        }
    }


    /**
     test_mock_1_basic
     - GET /mock
     - 
     - examples: [{contentType=application/json, example={"empty": false}}]
     
     - parameter param1: (query) testing params 

     - returns: RequestBuilder<InlineResponse200> 
     */
    open class func mockGetWithRequestBuilder(param1: String) -> RequestBuilder<InlineResponse200> {
        let path = "/mock"
        let URLString = SwaggerClientAPI.basePath + path
        let parameters: [String:Any]? = nil
        
        var url = URLComponents(string: URLString)
        url?.queryItems = APIHelper.mapValuesToQueryItems([
            "param1": param1
        ])

        let requestBuilder: RequestBuilder<InlineResponse200>.Type = SwaggerClientAPI.requestBuilderFactory.getBuilder()

        return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false)
    }

    /**
     test_mock_multi_params
     
     - parameter param1: (query)  
     - parameter param2: (query)  
     - parameter completion: completion handler to receive the data and the error objects
     */
    open class func testMockMultiGet(param1: String, param2: String, completion: @escaping ((_ data: EmptyObject?,_ error: Error?) -> Void)) {
        testMockMultiGetWithRequestBuilder(param1: param1, param2: param2).execute { (response, error) -> Void in
            completion(response?.body, error)
        }
    }


    /**
     test_mock_multi_params
     - GET /test/mock/multi
     - 
     - examples: [{contentType=application/json, example={"empty": false}}]
     
     - parameter param1: (query)  
     - parameter param2: (query)  

     - returns: RequestBuilder<EmptyObject> 
     */
    open class func testMockMultiGetWithRequestBuilder(param1: String, param2: String) -> RequestBuilder<EmptyObject> {
        let path = "/test/mock/multi"
        let URLString = SwaggerClientAPI.basePath + path
        let parameters: [String:Any]? = nil
        
        var url = URLComponents(string: URLString)
        url?.queryItems = APIHelper.mapValuesToQueryItems([
            "param1": param1, 
            "param2": param2
        ])

        let requestBuilder: RequestBuilder<EmptyObject>.Type = SwaggerClientAPI.requestBuilderFactory.getBuilder()

        return requestBuilder.init(method: "GET", URLString: (url?.string ?? URLString), parameters: parameters, isBody: false)
    }

}
