Skip to content
Snippets Groups Projects
run.py 2.35 KiB
Newer Older
nick's avatar
nick committed
# run.py

import os
import time
Mitchell Moore's avatar
Mitchell Moore committed
import subprocess
Mitchell Moore's avatar
Mitchell Moore committed
import pika
from flask_socketio import SocketIO
nick's avatar
nick committed

from app import create_app

config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
Mitchell Moore's avatar
Mitchell Moore committed
socketio = SocketIO(app)
nick's avatar
nick committed


def messageReceived(methods=['GET', 'POST']):
    print('message was received!!!')


def check_dir(user, interval):
    # Todo: Make this mothod in a consumer

    """
    :param user: (string) username to check for in DB.
    :param interval: (int) Frequency to check in seconds.
    :return: (boolean) if account has been registered.
    """
    seconds = 0

    while seconds < 600:
        querystring = "_" + user + ".done"

        for filename in os.listdir("flat_db/"):
            if filename.endswith(querystring):
                return True
        time.sleep(interval)
        seconds = seconds + interval

    return False


def create_account(username, fullname, reason):
    # Todo: Ravi's and Louis's code go here
Mitchell Moore's avatar
Mitchell Moore committed
    print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue')
    socketio.emit("creating account")
    # Todo: Code to create a consumer based on the username goes here
    # Todo: Goal is to have it listening for confirmation.
@socketio.on('user connect')
def handle_my_custom_event(json, methods=['GET', 'POST']):
    username = json["user"]
    print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' connected.')
Mitchell Moore's avatar
Mitchell Moore committed
@socketio.on('request account')
def ingest_data(json, methods=['GET', 'POST']):
    print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json))
        create_account(json['username'], json['fullname'], json['reason'])

    except Exception as e:
        print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e)
        socketio.emit("Account creation failed")
@socketio.on("validate creation")
def creation_confirmation(json, methods=['GET', 'POST']):

    # User create Script Approach
    username = json["username"]

Mitchell Moore's avatar
Mitchell Moore committed
    if account_confirmation(username):
        print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username)
        socketio.emit("Account created")
    else:
        socketio.emit("Account creation failed")


nick's avatar
nick committed
if __name__ == '__main__':
Mitchell Moore's avatar
Mitchell Moore committed
   # app.run()
    socketio.run(app)