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)
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)
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"