Esempio n. 1
0
def crear_comentario(usuario, evento, comentario):
    # type: (Usuario, Evento, {unicode|str:object}) -> Comentario
    """
    :param usuario: Usuario que crea o edita el comentario
    :param evento: Evento al que pertenece el comentario
    :param comentario: comentario que se está creando o comentario que se está modificando
    :return: el Comentario nuevo
    """
    if u'texto' not in comentario or not isinstance(comentario[u'texto'], (str, unicode)) or not comentario[u'texto']:
        raise AgendamlgException.comentario_campos_invalidos()

    otro_comentario = Comentario.query(Comentario.creador == usuario.key, ancestor=evento).fetch()
    if otro_comentario:
        raise AgendamlgException.usuario_ya_ha_comentado(usuario.idGoogle)

    comentario = Comentario(
        parent=evento,
        creador=usuario.key,
        texto=comentario[u'texto'],
        fecha=to_utc()
    )
    if 0 < usuario.tipo < 4:
        comentario.put()
        return comentario
    else:
        raise NotAuthenticatedException.no_autenticado()
Esempio n. 2
0
 def delete(self):
     ndb.delete_multi(Comentario.query().fetch(keys_only=True))
     ndb.delete_multi(MeGusta.query().fetch(keys_only=True))
     ndb.delete_multi(Evento.query().fetch(keys_only=True))
     ndb.delete_multi(Usuario.query().fetch(keys_only=True))
     ndb.delete_multi(Categoria.query().fetch(keys_only=True))
     self.response.unicode_body = u'{"True": "👌🏿"}'
Esempio n. 3
0
def do_it():
    ndb.delete_multi(Comentario.query().fetch(keys_only=True))
    ndb.delete_multi(MeGusta.query().fetch(keys_only=True))
    ndb.delete_multi(Evento.query().fetch(keys_only=True))
    ndb.delete_multi(Usuario.query().fetch(keys_only=True))
    ndb.delete_multi(Categoria.query().fetch(keys_only=True))

    add_categories()
    add_users()
    add_events()
Esempio n. 4
0
def buscar_comentarios_evento(usuario, evento):
    # type: (Usuario|None, ndb.Key) -> [Comentario]
    """
    :param usuario: usuario de la sesión, o 'None'
    :param evento: buscamos los comentarios de este evento
    :return:
    """
    evento = evento.get()
    tipo = usuario.tipo if usuario else 1
    if evento is not None and (tipo == 3 or evento.validado or usuario.key == evento.key.parent()):
        q = Comentario.query(ancestor=evento.key).order(-Comentario.fecha)
        return q.fetch()
    else:
        raise AgendamlgNotFoundException.evento_no_existe(evento.urlsafe())
Esempio n. 5
0
def eliminar_comentario(usuario, evento):
    # type: (Usuario, ndb.Key) -> None
    """
    :param usuario: usuario que elimina el comentario
    :param evento: evento al que eliminar el comentario del usuario
    :return:
    """
    comentario = Comentario.query(Comentario.creador == usuario.key, ancestor=evento).fetch()
    if not comentario:
        AgendamlgNotFoundException.comentario_no_existe(evento.urlsafe())
    comentario = comentario[0]
    if usuario.tipo == 3 or usuario.key == comentario.creador:
        comentario.key.delete()
    else:
        raise AgendamlgException.sin_permisos(usuario.idGoogle)
Esempio n. 6
0
    def get(self):
        self.response.headers.add_header('Access-Control-Allow-Origin', '*')
        self.response.headers['Content-Type'] = 'application/json'
        """id_empresa = self.request.get('empresa')
     objemp = Empresa.query(Empresa.codigo_empresa == id_empresa).get()
     strKey = objemp.key.urlsafe() 
     myEmpKey = ndb.Key(urlsafe=strKey) 
     myComentarios = Comentario.query(Comentario.empresa_key == myEmpKey)
  """
        myComentarios = Comentario.query()
        myList = []
        for i in myComentarios:
            myObj = DemoClass()
            myObj.title = i.title
            myObj.description = i.description
            myObj.urlImage = i.urlImage
            myList.append(myObj)

        json_string = json.dumps(myList, default=MyClass)
        self.response.write(json_string)