// SYNCHRONY OF CATEGORIES
let dir = Helpers.REQUESTAPIURL + "/ synchronizeCategoriesApp? userID = (userID!)"
let url: NSURL = NSURL (string: dir)!
let session = NSURLSession.sharedSession ()
let request = NSMutableURLRequest (URL: url)
let task = session.dataTaskWithRequest (request, completionHandler: {data, response, error -> Void in
if (error! = nil) {
print (error! .localizedDescription)
}
else {
let nsdata: NSData = NSData (data: data!)
if(nsdata != ""){
do{
let json = try NSJSONSerialization.JSONObjectWithData(nsdata, options: NSJSONReadingOptions.MutableContainers)
let arregloJsonList = json["categorias"] as? NSArray
if let nsArrayJsonList = arregloJsonList {
nsArrayJsonList.enumerateObjectsUsingBlock({objeto, index, stop in
var datos: NSMutableArray = NSMutableArray()
self.idCat = "\(objeto["catId"])" as? NSString
datos = ModeloBD.getInstance().findCategoriaByExternalId(String(self.idCat!))
var cat:CategoriaData = CategoriaData()
if datos.count > 0{
cat = datos.objectAtIndex(0) as! CategoriaData
}
if cat.id == 0{
if objeto["catOperacion"] as? String == "I"{
print("aqui: \(objeto["CATNOMBRE"] as! String)")
cat.externalId = Int32(self.idCat! as String)!
cat.catNombre = objeto["CATNOMBRE"] as! String
cat.catPuntos = ("\(objeto["CATPUNTOS"])" as? NSString)!.intValue
cat.catEstado = ("\(objeto["CATESTADO"])" as? NSString)!.intValue
cat.catVersion = ("\(objeto["CATVERSION"])" as? NSString)!.intValue
cat.catOperacion = String(objeto["CATOPERACION"])
ModeloBD.getInstance().registrarCategoria(cat)
}
}
else{
if cat.catVersion < objeto["catVersion"] as? Int32{
if objeto["catOperacion"] as? String == "U"{
ModeloBD.getInstance().updateCategoria(cat)
}
else if objeto["catOperacion"] as? String == "D"{
ModeloBD.getInstance().removeCategoria(String(self.idCat))
}
}
}
})
}
}catch{
self.msn = "Error al serealizar JSON"
dispatch_async(dispatch_get_main_queue()) {
self.mostrarAlert()
}
}
}
else{
self.msn = "Error, al sincronizar"
dispatch_async(dispatch_get_main_queue()) {
self.mostrarAlert()
}
}
}
})
task.resume()