def responderComentario(request):
    datosRespuesta =  request.raw_post_data
    tree = xml.fromstring(datosRespuesta)  
    for i in tree.iter(): 
	if i.tag == "nickName":
	        nickName = i.text
	elif i.tag == "usuarioRespuesta":
		usuarioRespuesta = i.text
	elif i.tag == "idComentario":
		idComentario = i.text
	elif i.tag == "texto":
		texto = i.text
	elif i.tag == "admiteRespuesta":
		admiteRespuesta = i.text
	elif i.tag == "token":
		token = i.text

    now = datetime.datetime.now()
    elComentario = GestionComentario.Comentario()
    elComentario.nickName = nickName
    elComentario.usuarioRespuesta = usuarioRespuesta
    elComentario.idComentario = idComentario
    elComentario.texto = texto
    elComentario.admiteRespuesta = admiteRespuesta
    elComentario.token = token
    elComentario.fecha = str (now)
    
    usuario = GestionComentario.validarUsuarioRespuesta(idComentario)

    elToken = GestionToken.Token()
    ip = str(request.META['REMOTE_ADDR']) 
    elToken.token = token
    elToken.nickName = nickName
    elToken.ip = ip
  
    if(usuario == usuarioRespuesta):
        if elToken.validarToken() == "TRUE":
	     if GestionComentario.admitirRespuesta(idComentario) == "TRUE":
	         if elComentario.responderComentario() == "TRUE":
	             elComentario.notificarRespuestaComentario(usuarioRespuesta)	
		     return render_to_response('respuestaMensaje.xml', {'mensajeRespuesta': "Se ha agregado satisfactoriamente la respuesta el dia: "+elComentario.fecha},mimetype='application/xml')
		 else:
		     logging.error('EC-015:Error al tratar de generar la respuesta por el usuario '+nickName)
		     return render_to_response('errorMensaje.xml', {'errorMensaje': "Error al tratar de generar la respuesta el dia:" +elComentario.fecha},mimetype='application/xml')
	     else:
	        return render_to_response('errorMensaje.xml', {'errorMensaje': "Este comentario no admite respuesta"},mimetype='application/xml')
        elif elToken.validarToken() == "Error":
	    logging.error('EC-016:Error el tiempo del token del usurario '+nickName+' ha expirado')
	    return render_to_response('errorMensaje.xml', {'errorMensaje': "Lo sentimos el tiempo de su token ha expirado. Vuelva a Iniciar Sesion"},mimetype='application/xml')
            		
        else:
	    logging.error('EC-017:Error el usuario '+nickName+ ' envio un token incorrecto')
	    return render_to_response('errorMensaje.xml', {'errorMensaje': "Error el token enviado es incorrecto"},mimetype='application/xml')
    else:
	logging.error('EC-018:Error la respuesta enviado por el usuario '+nickName+ ' no esta asociada al comentario')
        return render_to_response('errorMensaje.xml', {'errorMensaje': "La respuesta no esta asociada al comentario"},mimetype='application/xml')
def listarRespuesta(request):

    datosRespuesta =  request.raw_post_data
    tree = xml.fromstring(datosRespuesta)
  
    for i in tree.iter(): 
        if i.tag == "nickName":
	    nickName = i.text
	elif i.tag == "idComentario":
	    idComentario = i.text

    laRespuesta = GestionComentario.Comentario()
    listaDeRespuestas = GestionComentario.listaRespuesta(nickName,idComentario)
    if listaDeRespuestas == "FALSE":	
        return render_to_response('errorMensaje.xml', {'errorMensaje': "Error no se encuentran respuestas para esta persona"},mimetype='application/xml')
    else:
        datos = "<listaRespuesta>"
    	i = 0
        while i < len(listaDeRespuestas):
	    valores = listaDeRespuestas[i].split(':')
	    usuario = "\n     <nickName>"+valores[0]+"</nickName>"		
	    usuarioResp = "\n     <usuarioRespuesta>"+valores[1]+"</usuarioRespuesta>"
	    texto = "\n     <texto>"+valores[2]+"</texto>\n"
            datos = datos + usuario + usuarioResp + texto
	    i = i + 1
	datos = datos + "\n</listaRespuesta>"
	return HttpResponse(datos, content_type= "application/xml")
def listarComentario(request,nickName):

    nickName = str (nickName)
    elComentario = GestionComentario.Comentario()
    listaDeComentarios = GestionComentario.listaComentario(nickName)
	
    if  listaDeComentarios == "FALSE":	
        return render_to_response('errorMensaje.xml', {'errorMensaje': "Error no se encuentran comentarios para esta persona"},mimetype='application/xml')
    else:
        datos = "<listaComentario>"
    	i = 0
        while i < len(listaDeComentarios):
            valores = listaDeComentarios[i].split(':')
	    subetiqueta = "\n     <Comentario>"
	    identificador = "\n     <idComentario>"+valores[0]+"</idComentario>"
	    usuario = "\n     <nickName>"+valores[1]+"</nickName>"
	    texto = "\n     <texto>"+valores[2]+"</texto>"
	    token = "\n     <token>"+valores[3]+"</token>"
	    meGusta = "\n     <meGusta>"+valores[4]+"</meGusta>"
	    noMeGusta = "\n     <noMeGusta>"+valores[5]+"</noMeGusta>"
	    subetiqueta2 = "\n     </Comentario>"
	    datos = datos + subetiqueta+ identificador + usuario + texto + token + meGusta + noMeGusta + subetiqueta2
	    i = i + 1
	datos = datos + "\n</listaComentario>"
	return HttpResponse(datos, content_type= "application/xml")
def cuentaNoMeGusta(request):

    datosComentario = request.raw_post_data
    tree = xml.fromstring(datosComentario)  
    for i in tree.iter(): 
        if i.tag == "idComentario":
	    idComentario = i.text
	
    contador = GestionComentario.contarNoMeGusta(idComentario)
    if (contador == "FALSE"):
	logging.error('EC-029:Error el comentario '+idComentario+' no existe')
	return render_to_response('errorMensaje.xml', {'errorMensaje': "Este comentario no existe"},mimetype='application/xml')
    else:
	return render_to_response('respuestaMensaje.xml', {'mensajeRespuesta': "A "+ str(contador) + " Personas NO le(s) gusta este comentario "},mimetype='application/xml')
def listarEtiqueta(request,nombreEtiqueta):
    listaDeDatosComentario = GestionComentario.listaEtiquetas(nombreEtiqueta)
    if  listaDeDatosComentario == "FALSE":
        return render_to_response('errorMensaje.xml', {'errorMensaje': "Error no se encuentran comentarios con esta etiqueta"},mimetype='application/xml')
    else:
        datos = "<listaComentariosConEtiquetas>\n"
    	i = 0
	losComentarios = ''
	resultado = ''
        while i < len(listaDeDatosComentario):
	    valores = listaDeDatosComentario[i].split(':')
	    idComentario = valores[0]		
	    nickName = valores[1]
	    losComentarios = losComentarios + GestionComentario.listarComentariosConEtiqueta(idComentario,nickName) 
	    i = i + 1
	i = 0
	arreglo = losComentarios.split(":")
	while i < len(arreglo)-1:
	    resultado = resultado + "<texto>" + arreglo[i] + "<texto>\n"
   	    i = i + 1

	datos = datos + resultado + "</listaComentariosConEtiquetas>"
	return HttpResponse(datos, content_type= "application/xml")