Skip to content

Instantly share code, notes, and snippets.

@amrangry
Created November 13, 2017 22:19
Show Gist options
  • Save amrangry/955c369650b7605dc69118e2a5ac0338 to your computer and use it in GitHub Desktop.
Save amrangry/955c369650b7605dc69118e2a5ac0338 to your computer and use it in GitHub Desktop.
class func addRealstate(city_id:Int,realstate_type:String,category_id:Int,name:String,price:String,latitude:String,longitude:String,content:String,mobile:String,photos:[UIImage]?,state:String , completionHandler : @escaping (_ isSuccess: Bool ,_ message:String)-> Void) {
guard let user = User.currentUser().user else {
return
}
let parameters : Parameters = [
"city_id" : "\(city_id)" , "realstate_type" : realstate_type , "category_id" : "\(category_id)" , "name" : name , "price" : price , "latitude" : latitude , "longitude" : longitude,"content" : content ,"mobile" : mobile,"state" : state
]
var photosDataArray :[(name: String, value: Data)] = []
if photos?.count ?? 0 > 0 {
print("There are objects!")
for (index , imageElement) in (photos?.enumerated())! {
let imageData = UIImageJPEGRepresentation(imageElement, 0.5)!
let imageName = ("photos[\(index)]")
photosDataArray.append((imageName , imageData))
}
}
let stringURl = "\(baseURL)\(URLs.addRealstate.rawValue)?api_token=\(user.api_token!)"
Alamofire.upload(multipartFormData: { multipartFormData in
for (key, value) in parameters {
if let data = (value as AnyObject).data(using: String.Encoding.utf8.rawValue) {
multipartFormData.append(data, withName: key)
}
}
for (offset: _ , element: (name: elementName, value: elementData) ) in photosDataArray.enumerated() {
multipartFormData.append(elementData, withName: elementName, fileName: "image.jpg", mimeType: "image/jpeg")
}
// for (index, elementData) in photosDataArray.enumerated() {
// print("Item \(index): \(elementData)")
// let imageName = ("photos[\(index)]")
// multipartFormData.append(elementData, withName: imageName, fileName: "image.jpg", mimeType: "image/jpeg")
//
// }
},
to:stringURl)
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})
upload.responseJSON
{ response in
//print response.result
print(response.result.value)
if let value = response.result.value as? JSONDictionary , let message = value["msg"] as? String{
completionHandler(true,message)
}
}
case .failure(let encodingError):
print(encodingError)
completionHandler(false,encodingError.localizedDescription)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment