-1

Getting some errors from i migrated this project to swift 3 with Alamofire. The second the last line is where I'm getting the error can someone help me to fix this code plz. See error I'm getting below

import Foundation
import Alamofire

struct ApiHandler {

    enum Router: URLRequestConvertible {
        static let baseURLString = "example.com"
        static let accessToken = "4kjn1kjb3213jkb12k3b12kn321k00"

        case categories(String)
        case assets
        case article(String)
        case top10(String)

        var URLRequest: NSMutableURLRequest {
            let (path, parameters) : (String, [String: AnyObject]?) = {
                switch self {
                case .categories(let type):
                    let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                    return ("/entries", params as [String : AnyObject])
                case .assets:
                    let params = ["access_token": "\(Router.accessToken)"]
                    return ("/assets", params as [String : AnyObject])
                case .article(let type):
                    let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                    return ("/entries", params as [String : AnyObject])
                case .top10(let type):
                    let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                    return ("/entries", params as [String : AnyObject])
                }
            }()
            let URL = Foundation.URL(string: Router.baseURLString)
            let URLRequest = NSMutableURLRequest(url: URL!.appendingPathComponent(path))
            let encoding = Alamofire.ParameterEncoding.URL //error here line below
            return encoding.encode(URLRequest, parameters: parameters).0
        }
    }
}

Getting this error on the second to last line.

Type 'ParameterEncoding' has no member 'URL'

Slygoth
  • 333
  • 6
  • 17

1 Answers1

0

change This code..

struct ApiHandler {

enum Router: URLRequestConvertible {
    static let baseURLString = "example.com"
    static let accessToken = "4kjn1kjb3213jkb12k3b12kn321k00"

    case categories(String)
    case assets
    case article(String)
    case top10(String)

    var URLRequest: NSMutableURLRequest {
        let (path, parameters) : (String, [String: AnyObject]?) = {
            switch self {
            case .categories(let type):
                let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                return ("/entries", params as [String : AnyObject])
            case .assets:
                let params = ["access_token": "\(Router.accessToken)"]
                return ("/assets", params as [String : AnyObject])
            case .article(let type):
                let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                return ("/entries", params as [String : AnyObject])
            case .top10(let type):
                let params = ["access_token": "\(Router.accessToken)", "content_type": "\(type)"]
                return ("/entries", params as [String : AnyObject])
            }
        }()
        let URL = Foundation.URL(string: Router.baseURLString)
        let URLRequest = NSMutableURLRequest(url: URL!.appendingPathComponent(path))
        return try! Alamofire.URLEncoding.default.encode(URLRequest as! URLRequestConvertible, with: parameters) as! NSMutableURLRequest
    }
 }
}
Arjun Yadav
  • 1,369
  • 1
  • 10
  • 23
  • Getting the error type 'ApiHandler.Router does not conform to protocol 'URLRequestConvertible' – Slygoth Aug 02 '17 at 12:36
  • @Slygoth check this https://stackoverflow.com/questions/42524820/alamofire-type-parameterencoding-has-no-member-url-swift-3 – Arjun Yadav Aug 03 '17 at 05:03