예제 #1
0
def systemSettings():
    if not SystemSetting.get_settings():
        print("System Email")
        system_email = input(prompt)

        print("Email Password")
        email_password = input(prompt)

        print("SMTP HOST")
        smtp_host = input(prompt)

        print("SMTP PORT")
        smtp_port = input(prompt)
        port = int(smtp_port)

        print("TLS?")
        email_tls = input("yes/no?")

        if email_tls.lower() == "yes":
            email_tls = True
        else:
            email_tls = False

        settings = SystemSetting(system_email, email_password, smtp_host, port,
                                 email_tls)
        settings.save()
        print("System Einstellungen angelegt.")
    else:
        print("System Einstellungen existieren bereits.")
예제 #2
0
def create_sys_settings():
    if not SystemSetting.query.get(1):
        print("Kaffee Preis")
        kaffee_preis = input(prompt)

        systemSettings = SystemSetting(kaffee_preis=kaffee_preis)
        systemSettings.save()
    else:
        print("System Settings already exists")
예제 #3
0
    def put(self):
        # /admin/rechnungslauf
        data = request.get_json()
        settings = SystemSetting.get_settings()

        connection = pika.BlockingConnection(
            pika.ConnectionParameters(host="localhost"))
        channel = connection.channel()
        channel.queue_declare(queue="email")

        for each in data:
            settings = SystemSetting.get_settings()
            logging.warning(f"Using: {each}")
            logging.warning(
                f"username: {each['username']}, coffee_count: {each['coffee_count']}"
            )
            obj = {
                "username": "",
                "email": "",
                "coffee_count": "",
                "betrag": ""
            }
            logging.warning("Rechne new_coffee_count aus")
            new_coffee_count = RechnungsApi.count(each['coffee_count'])
            if new_coffee_count is None:
                new_coffee_count = int(0)
            logging.warning(f"New coffee count: {new_coffee_count}")
            logging.warning("Getting user")
            user = User.find_by_username(each['username'])
            logging.warning(f"Found user: {user.username}")
            logging.warning(f"User coffee count: {user.coffee_count}")
            temp_var = user.coffee_count - new_coffee_count
            logging.warning(f"Temporary coffee_count: {temp_var}")
            user.coffee_count = temp_var
            user.save()
            obj["username"] = user.username
            obj["email"] = user.email
            obj["coffee_count"] = new_coffee_count
            obj["betrag"] = new_coffee_count * settings.kaffee_preis
            logging.warning(f"obj: {obj}")
            user = User.find_by_username(each['username'])
            logging.warning(f"Neuer User coffee counter: {user.coffee_count}")
            channel.basic_publish(exchange="",
                                  routing_key="email",
                                  body=json.dumps(obj))
        connection.close()
        return {
            "message":
            "Die Daten wurden gespeichert und Emails werden versendet."
        }, 201
예제 #4
0
    def put(self):
        admin = User.find_by_id(get_jwt_identity())
        systemSetting = SystemSetting.get_setting()

        if not admin.is_admin:
            return {"msg": "Sie haben nicht die notwendigen Rechte."}, 403

        if not sysSetting:
            return {"msg": "Etwas ist schief gelaufen."}, 500

        data = request.get_json()

        for key, value in data.items():
            systemSetting[key] = data[key]

        try:
            sysSetting.save()
            return {
                "msg": "System Einstellungen wurden erfolgreich gespeichert."
            }, 201
        except:
            return {
                "msg":
                "Etwas ist beim Speichern der System Einstellungen schief gelaufen"
            }, 500
예제 #5
0
    def get(self):
        response = {}
        settings = SystemSetting.get_settings()
        schema = SystemSettingSchema()
        response['status'] = "OK"
        response['system_settings'] = schema.dump(settings).data

        return response, 200
예제 #6
0
    def put(self):
        response = {}
        schema = SystemSettingSchema()

        settings = SystemSetting.query.filter_by(id=1)
        settings.update(request.json)
        db.session.commit()
        response["status"] = "OK"
        settings = SystemSetting.get_settings()
        response["system_settings"] = schema.dump(settings).data
        return response, 200
예제 #7
0
    def get(self):
        systemSetting = SystemSetting.get_setting()
        admin = User.find_by_id(get_jwt_identity())

        if not user.is_admin:
            return {"msg": "Sie haben nicht die notwendigen Rechte."}, 403

        if not sysSetting:
            return {"msg": "Etwas ist schief gelaufen."}, 500

        return {"sysSetting": systemSetting.json()}
예제 #8
0
    def post(self):
        tracks = {}
        "Record the passed list"
        data = request.get_json()
        tracks['recordList'] = data['recordList']
        settings = SystemSetting.get_settings()
        schema = SystemSettingSchema()

        connection = pika.BlockingConnection(
            pika.ConnectionParameters(host="rabbit"))
        channel = connection.channel()
        channel.queue_declare(queue="recorder")
        tracks['settings'] = schema.dump(settings).data

        for record in tracks['recordList']:
            obj = {
                "trackname": record['name'],
                "id": record['id'],
                "duration_ms": record['duration_ms'],
                "settings": {
                    "framesize": tracks['settings']['framesize'],
                    "driver_path": tracks['settings']['driver_path'],
                    "profile_path": tracks['settings']['profile_path']
                }
            }
            for t in record['album']['artists']:
                obj['artist'] = t['name']

            json_data = json.dumps(obj)
            channel.basic_publish(exchange="",
                                  routing_key="recorder",
                                  body=json_data)

        connection.close()
        return {
            "message":
            "Jobs wurden erstellt. Nachricht wird verstand wenn fertig."
        }, 201