var models = require("../models/models.js");
var request = require('request');


// POST dispositivos/registro

exports.crear = function(req, res) {
	res.send("OK");

}

exports.registro = function(req, res) {

	console.log("POST registro: ---> ");
	console.log("deviceID: " + req.body.firebase_id);
	console.log("deviceID: " + req.body.firebase_id_old);

	//req.body.firebase_id = "Hola"


	var devs = models.Dispositivos;

	//var dataQuery = {firebase_id: req.body.firebase_id};
	var dataQuery = {where: {firebase_id: req.body.firebase_id}};
	var dataWhere = "";

	//var valor = "dd-yIFRftVc:APA91bFWI9Vbb_RyhBqrmM5wXaYOzt7Ghlb3t3Yc-Y0O5xmDBq0vV7WG9JvSyZ-W1QlrofmyA-L1fuHJ1Q21U-qHOKpuOUMjYsdq56PTl0CyX2s6Kgbi6BBN5yyeaInrhvkZ5cg0d6H6";

	//models.Dispositivos.count(dataQuery).then(function(cant) {
	devs.count(dataQuery).then(function(cant) {
		console.log("firebase_id Encontrados:" + cant);

		if(cant > 0){ // existente, no hace falta hacer nada

		}else{ // nuevo, ver si solo agregar o si se requiere actualizar

			dataQuery = {where: {firebase_id_old: req.body.firebase_id_old}};
			devs.count(dataQuery).then(function(cant) {
				if(cant > 0){
					// debo reemplazar el id

					dataQuery = {firebase_id: req.body.firebase_id, firebase_id_old: req.body.firebase_id};
					dataWhere = {where: {firebase_id_old: req.body.firebase_id_old}};

					devs
					.update(dataQuery, dataWhere)
					.then( function(affectedRows){
					 	console.log("deviceID actualizado. rows: " + affectedRows);
					});
				// UPDATE post SET updatedAt = null WHERE deletedAt NOT NULL;

				} else { // es nuevo full, insertarlo derecho viejo

					dataQuery = {firebase_id: req.body.firebase_id, firebase_id_old: req.body.firebase_id_old};
					var dispositivo = models.Dispositivos.build(dataQuery);

					dispositivo
					.validate()
					.then(
						function(err){
							if (err) {
								console.log(err.errors);
							} else {
								dispositivo 
								.save({fields: ["firebase_id", "firebase_id_old"]})
								.then( function(){
								 	console.log("deviceID almacenado");
								}) 
							}     
						}
					).catch(function(error){next(error)});
				}

			});
		}
	});

	res.send(req.body.firebase_id);
};