Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static func updateProfile(email: String?, place: String?, name: String?, info: String?, sex: String?, newImage: NSData?, completion: @escaping (String, String?) -> Void){
- var parameters: [String: String] = ["token": Profile.me.token!]
- parameters["name"] = name
- parameters["about"] = info
- parameters["city"] = place
- parameters["sex"] = sex
- parameters["email"] = email
- let v = Profile.me.birthDate != nil ? stringFrom(utcDate: Profile.me.birthDate!) : "1998-05-07"
- parameters["bdate"] = v
- let myUrl = NSURL(string: URLs.updateProfile);
- let request = NSMutableURLRequest(url:myUrl! as URL);
- request.httpMethod = "POST";
- let boundary = "Boundary-\(NSUUID().uuidString)"
- request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
- request.httpBody = createBodyWithParameters(parameters: parameters, filePathKey: "image", imageDataKey: newImage, boundary: boundary) as Data
- let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
- if let data = data{
- let json = JSON(data: data)
- completion(json["status"].stringValue,json["profile_photo"].string)
- }
- else { completion("failure", nil) }
- }
- task.resume()
- }
- static func createBodyWithParameters(parameters: [String: String?]?, filePathKey: String?, imageDataKey: NSData?, boundary: String) -> NSData{
- let body = NSMutableData()
- if parameters != nil {
- for (key, value) in parameters! {
- if let v = value{
- body.appendString(string: "--\(boundary)\r\n")
- body.appendString(string: "Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
- body.appendString(string: "\(v)\r\n")
- }
- }
- }
- let filename = "user-profile.jpg"
- let mimetype = "image/jpg"
- body.appendString(string: "--\(boundary)\r\n")
- if let imData = imageDataKey{
- body.appendString(string: "Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n")
- body.appendString(string: "Content-Type: \(mimetype)\r\n\r\n")
- body.append(imData as Data)
- body.appendString(string: "\r\n")
- body.appendString(string: "--\(boundary)--\r\n")
- }
- return body
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement