Ejemplo n.º 1
0
def ext_create_new_session(api_key):
    logging.debug("EXTERNAL: Create new Session")

    db = Database()
    user = db.get_user_by_api_key(api_key)

    if user is None:
        return "Provided API key ('{}') is not associated with any registered user".format(
            api_key), HTTPStatus.UNAUTHORIZED.value

    session_name = datetime.datetime.fromtimestamp(
        time.time()).strftime('%Y-%m-%d %H:%M:%S')
    logging.debug("Creating new session: %s (userid: %s)", session_name,
                  user['user_id'])
    session_id = db.create_session(session_name, user['user_id'])
    logging.debug("New session id: %s", session_id)
    set_current_session(session_id, session_name)

    return "New Session ID: '{}'".format(session_id)
Ejemplo n.º 2
0
def ext_create_new_session_name(api_key, session_name):
    logging.debug("EXTERNAL: Create new Session with name")

    db = Database()
    user = db.get_user_by_api_key(api_key)

    if user is None:
        return "Provided API key ('{}') is not associated with any registered user".format(
            api_key), HTTPStatus.UNAUTHORIZED.value

    if db.does_session_name_exist(session_name):
        return "Provided session name ('{}') already exists".format(
            session_name), HTTPStatus.UNAUTHORIZED.value

    logging.debug("Creating new session: %s (userid: %s)", session_name,
                  user['user_id'])
    session_id = db.create_session(session_name, user['user_id'])
    logging.debug("New session id: %s", session_id)
    set_current_session(session_id, session_name)

    return "New Session ID: '{}'".format(session_id)
Ejemplo n.º 3
0
def ext_post_event(api_key, session_id):
    logging.debug("EXTERNAL: Event posted")

    payload = request.data

    if len(payload) == 0:
        return "No payload / message body received", HTTPStatus.BAD_REQUEST.value

    db = Database()
    user = db.get_user_by_api_key(api_key)

    if user is None:
        return "Provided API key ('{}') is not associated with any registered user".format(
            api_key), HTTPStatus.UNAUTHORIZED.value

    try:
        parsed = json.loads(payload)
    except json.decoder.JSONDecodeError as ex:
        return ex.msg, HTTPStatus.BAD_REQUEST.value

    if session_id is None:
        return "No unique session identifier provided", HTTPStatus.BAD_REQUEST.value

    # if get_current_session_id() is None:
    # ext_create_new_session(api_key)
    # session_name = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
    # logging.debug("Creating new session: %s (userid: %s)", session_name, user['user_id'])
    # session_id = db.create_session(session_name, user['user_id'])
    # logging.debug("New session id: %s", session_id)
    # set_current_session(session_id, session_name)

    for message in parsed:
        try:
            print(message)
            db.add_entry(session_id, user['user_id'], message['message_data'])
        except (TypeError, KeyError) as ex:
            print(ex)
            return "Payload / message body has invalid formatting", HTTPStatus.BAD_REQUEST.value

    return "OK"