1

I'm having trouble converting from PromiseKit 4.0 to PromiseKit 6.3. I am trying to convert this particular function into the new version. How can I do this?

func registerUser(_ email: String, givenName: String, familyName: String, password: String) -> Promise<JSON> {
        let req = urlRequestForPath("/user/create/local/", parameters: nil, method: .POST) as! NSMutableURLRequest
        let queryString = stringFromParameters(["email": email.lowercased() as AnyObject, "given_name": givenName as AnyObject, "family_name": familyName as AnyObject, "password": password as AnyObject, "client_id": oauthClientId as AnyObject])

    req.httpBody = queryString.data(using: String.Encoding.utf8, allowLossyConversion: false)

    return URLSession.shared.dataTask(with: req as URLRequest).then{(data: Data) -> JSON in
        return try! JSON(data: data)
    }
}
full-stack
  • 553
  • 5
  • 20

1 Answers1

0

It should return as below,

func registerUser(_ email: String, givenName: String, familyName: String, password: String) -> Promise<JSON> {
    let req = urlRequestForPath("/user/create/local/", parameters: nil, method: .POST) as! NSMutableURLRequest
    let queryString = stringFromParameters(["email": email.lowercased() as AnyObject, "given_name": givenName as AnyObject, "family_name": familyName as AnyObject, "password": password as AnyObject, "client_id": oauthClientId as AnyObject])

    req.httpBody = queryString.data(using: String.Encoding.utf8, allowLossyConversion: false)

    let p = URLSession.shared.dataTask(.promise, with: req.pmkRequest)

    return p.then { (data, response) -> Promise<JSON> in
        let json = try! JSON(data: data)
        return Promise.value(json)
    }
}
Kamran
  • 14,987
  • 4
  • 33
  • 51