Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.73 KB | None | 0 0
  1. func getShortlinkFromLonglink(fromURL url: URL, completionHandler: @escaping (_ shortlink: String?) -> ()) {
  2.         let parameters = ["longDynamicLink": url.absoluteString,
  3.                           "suffix": ["option": "SHORT"]] as [String : Any]
  4.        
  5.         guard let url = URL(string: "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=AIzaSyCAJztEvOtrkQ-zk5yTjvArR9i-Dqpj5_8") else {
  6.             completionHandler(nil)
  7.             return
  8.         }
  9.        
  10.         let session = URLSession.shared
  11.        
  12.         var request = URLRequest(url: url)
  13.         request.httpMethod = "POST"
  14.        
  15.         do {
  16.             request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
  17.         } catch let error {
  18.             print(error.localizedDescription)
  19.             completionHandler(nil)
  20.             return
  21.         }
  22.        
  23.         request.addValue("application/json", forHTTPHeaderField: "Content-Type")
  24.         request.addValue("application/json", forHTTPHeaderField: "Accept")
  25.        
  26.         let task = session.dataTask(with: request as URLRequest, completionHandler: { data, response, error in
  27.            
  28.             guard error == nil, let data = data else {
  29.                 completionHandler(nil)
  30.                 return
  31.             }
  32.  
  33.             do {
  34.                 if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {
  35.                     completionHandler(json["shortLink"] as! String)
  36.                 }
  37.             } catch let error {
  38.                 print(error.localizedDescription)
  39.                 completionHandler(nil)
  40.                 return
  41.             }
  42.         })
  43.         task.resume()
  44.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement