Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.61 KB | None | 0 0
  1. static func updateProfile(email: String?, place: String?, name: String?, info: String?, sex: String?, newImage: NSData?, completion: @escaping (String, String?) -> Void){
  2.         var parameters: [String: String] = ["token": Profile.me.token!]
  3.        
  4.         parameters["name"] =  name
  5.         parameters["about"] = info
  6.         parameters["city"] =  place
  7.         parameters["sex"] =   sex
  8.         parameters["email"] = email
  9.        
  10.         let v =  Profile.me.birthDate  != nil ? stringFrom(utcDate: Profile.me.birthDate!) : "1998-05-07"
  11.         parameters["bdate"] = v
  12.        
  13.         let myUrl = NSURL(string: URLs.updateProfile);
  14.         let request = NSMutableURLRequest(url:myUrl! as URL);
  15.         request.httpMethod = "POST";
  16.         let boundary = "Boundary-\(NSUUID().uuidString)"
  17.         request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
  18.         request.httpBody = createBodyWithParameters(parameters: parameters, filePathKey: "image", imageDataKey: newImage, boundary: boundary) as Data
  19.        
  20.         let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
  21.            
  22.             if let data = data{
  23.                 let json = JSON(data: data)
  24.                 completion(json["status"].stringValue,json["profile_photo"].string)
  25.             }
  26.             else { completion("failure", nil) }
  27.         }
  28.        
  29.         task.resume()
  30.     }
  31.    
  32.     static func createBodyWithParameters(parameters: [String: String?]?, filePathKey: String?, imageDataKey: NSData?, boundary: String) -> NSData{
  33.         let body = NSMutableData()
  34.        
  35.         if parameters != nil {
  36.             for (key, value) in parameters! {
  37.                 if let v = value{
  38.                     body.appendString(string: "--\(boundary)\r\n")
  39.                     body.appendString(string: "Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
  40.                     body.appendString(string: "\(v)\r\n")
  41.                 }
  42.             }
  43.         }
  44.        
  45.         let filename = "user-profile.jpg"
  46.         let mimetype = "image/jpg"
  47.        
  48.         body.appendString(string: "--\(boundary)\r\n")
  49.        
  50.         if let imData = imageDataKey{
  51.             body.appendString(string: "Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n")
  52.             body.appendString(string: "Content-Type: \(mimetype)\r\n\r\n")
  53.             body.append(imData as Data)
  54.             body.appendString(string: "\r\n")
  55.             body.appendString(string: "--\(boundary)--\r\n")
  56.         }
  57.        
  58.         return body
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement