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()
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": "👌🏿"}'
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()
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())
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)
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)