def checkStatus(): # Alojamos en sensors, todos los sensores de la db filtrados por active y status. sensors = (db.session.query(SensorModel).filter( SensorModel.active == True).filter(SensorModel.status == False).all()) # Definimos los IF para el envio de emails. if sensors: # Alojamos en la variable admins, los usuarios traidos de la db, filtrados por "admin" admins = db.session.query(UserModel).filter( UserModel.admin == True).all() if admins: adminList = [admin.email for admin in admins] # Almacenar la lista de sensores desactivados en una variable.. # Tengo que escribir un nuevo archivo .pdf en el cual, su contenido sera la variable definida... # OPCION 1 # Pip install fpdf # Importamos FPDF de fpdf para crear el archivo.pdf #from fpdf import FPDF # Primero crearemos nuestro archivo PDF, usando la biblioteca FṔDF # Creamos la variable y guardamos la clase FPDF() # SensorsListpdf = FPDF() # Agregamos una pagina al archivo pdf, para poder almacenar la lista de sensores # SensorsListpdf.add_page() # Elegimos el tipo de letra y tamaño # SensorsListpdf.set_font("Arial", size=12) # Me faltaria agregar la lista de los sensores fallando al archivo... # SensorsDesactivated = jsonify({"sensors": [sensor.to_json() for sensor in sensors]}) # SensorsListpdf.cell(SensorsDesactivated) # Guardamos la informacion con output en el archivo.pdf # SensorsListpdf.output('SensorList.pdf') # Adjuntar el archivo.PDF # attach(filename=SensorList, content_type=application/pdf, data=SensorsList, disposition=None, headers=None) # OPCION 2 # pip install reportlab # from reportlab.pdfgen.canvas import Canvas # Creamos el archivo PDF con canvas y lo almacenamos en la variable # SensorsList=Canvas('SensorList.pdf') # Escribimos la variable con los datos de los sensores # SensorsDesactivated=jsonify({"sensors": [sensor.to_json() for sensor in sensors]}) # SensorsList.drawString(0, 0,SensorsDesactivated) # Guardamos los datos de los sensores en el archivo.. # SensorsList.save() # Adjuntamos la variable al email # msg.attach(filename=SensorsList, content_type=application/pdf, data=sensors, disposition=None, headers=None) # Enviamos el email con el archivo adjunto sendMail( adminList, "Deactivated sensors", "mail/sensor", sensorList=sensors ) # Nos retorna los datos del sensor return "There're no sensors", 200 else: return "There're no deactivated sensors", 200
def checkStatus(): sensors = db.session.query(SensorModel).filter(SensorModel.active == True).filter(SensorModel.status == False).all() if sensors: admins = db.session.query(UserModel).filter(UserModel.admin == True).all() if admins: adminList = [admin.email for admin in admins] sendMail(adminList, "Deactivated sensors", "mail/sensor", sensorList = sensors) return jsonify({ 'sensors': [sensor.to_json() for sensor in sensors]}) else: return "There're no deactivated sensors", 200
def register(): user = UserModel.from_json(request.get_json()) exists = db.session.query(UserModel).filter( UserModel.email == user.email).scalar() is not None if exists: return 'Duplicate email', 409 else: try: db.session.add(user) sent = sendMail(user.email, "Register", 'mail/sensor', user=user) if sent == True: db.session.commit() else: db.session.rollback() return str(sent), 502 except Exception as error: db.session.rollback() return str(error), 409 return user.to_json(), 201
def register(): usuario = UsuarioModel.from_json(request.get_json()) exits = db.session.query(UsuarioModel).filter( UsuarioModel.mail == usuario.mail).scalar() is not None if exits: return 'Duplicated mail', 409 else: try: db.session.add(usuario) db.session.commit() sent = sendMail([usuario.mail], "Bienvenido", 'register', usuario=usuario) except Exception as error: db.session.rollback() return str(error), 409 return usuario.to_json(), 201