Ejemplo n.º 1
0
class FavouriteHandler(tornado.web.RequestHandler):

  @gen.coroutine
  def post(self):
    try:
      self.__model = UserModel()
      data = json.loads(self.request.body.decode('UTF-8'))
      if not 'id_persona' in data and not 'id_producto' in data and not 'favorito' in data:
        raise Exception('No cumples con los datos necesarios.')
      id_cliente = yield self.__model.get_client_id_by_person_id(data['id_persona'])
      if not id_cliente:
        raise Exception('Ha ocurrido un error al buscar el cliente.')
      if data['favorito'] is 1:
        registered = yield self.__model.existent_favourite(id_cliente, data['id_producto'])
        if registered:
          raise Exception('Este producto ya estaba agregado a tus favoritos.')
        register = yield self.__model.add_client_favourite(id_cliente, data['id_producto'])
        if not register:
          raise Exception('Ha ocurrido un error.')    
        self.set_status(200)
        self.write({'message': 'Producto agregado a favoritos'})
      else:
        errased = yield self.__model.remove_client_favourite(id_cliente, data['id_producto'])
        if not errased:
          raise Exception('Ha habido un problema al remover de favoritos.')
        self.set_status(200)
        self.write({'message' : 'Se ha removido el producto de favoritos.'})
    except Exception as error:
      self.set_status(400)
      self.write({'message' : str(error)})
  
  @gen.coroutine
  def get(self):
    try:
      self.__model = UserModel()
      self.__util = UtilProject()
      id_cliente = yield self.__model.get_cliente_id_from_persona_id(self.get_argument('id_persona'))
      if not id_cliente:
        raise Exception('Ha ocurrido un error al buscar el cliente.')
      favourites = yield self.__model.get_client_favourites_products(id_cliente)
      if not favourites or len(favourites) == 0:
        raise Exception('No tienes ningún favorito registrado.')
      favourites = self.__util.cast_numeric_to_string(favourites, 'precio_venta')
      self.set_status(200)
      self.write({'products': favourites})
    except Exception as error:
      self.set_status(400)
      self.write({'message' : str(error)})
Ejemplo n.º 2
0
 def get(self, id_persona):
     try:
         user_model = UserModel()
         id_cliente = yield user_model.get_cliente_id_from_persona_id(
             id_persona)
         if not id_cliente:
             raise Exception('Cliente no encontrado.')
         beneficts = yield user_model.get_client_beneficts(id_cliente)
         print(len(beneficts))
         if len(beneficts) is 0:
             raise Exception('No tienes ningun beneficio.')
         self.set_status(200)
         self.write({'beneficts': beneficts})
     except Exception as error:
         self.set_status(400)
         self.write({'message': str(error)})
Ejemplo n.º 3
0
 def post(self, id_persona):
     try:
         data = json.loads(self.request.body.decode('utf-8'))
         __model = UserModel()
         id_cliente = yield __model.get_cliente_id_from_persona_id(
             id_persona)
         if not id_cliente:
             raise Exception('Error al encontrar al cliente')
         likes_updated = yield __model.update_client_likes(id_cliente, data)
         if not likes_updated:
             raise Exception('No se han podido actualizar tus gustos')
         self.set_status(200)
         self.write({'message': 'Gustos actualizados correctamente'})
     except Exception as error:
         self.set_status(400)
         print("Error :" + str(error))
         self.write({'message': str(error)})
Ejemplo n.º 4
0
 def post(self, id_persona):
     try:
         data = json.loads(self.request.body.decode('utf-8'))
         __model = UserModel()
         id_cliente = yield __model.get_cliente_id_from_persona_id(
             id_persona)
         if not id_cliente:
             raise Exception('Error al encontrar al cliente')
         information_updated = yield __model.update_client_information(
             id_persona, data)
         if not information_updated:
             raise Exception(
                 'No se ha podido actualizar tu información personal.')
         self.set_status(200)
         self.write(
             {'message': 'Datos personales actualizados correctamente'})
     except Exception as error:
         import traceback
         traceback.print_exc()
         self.set_status(400)
         print("Error :" + str(error))
         self.write({'message': str(error)})