def _process_user(self, user_info: dict) -> int: """ Creates an entry for the user in the database to establish data relationships. Parameters ---------- user_info : dict The JSON containing the user info. Returns ------- Account The user's Account ORM object. """ username = user_info['username'] print(f'Username: {username}') print(f"Level: {user_info['level']}\n") user = Account.query.filter_by(username=username).first() current_time = datetime.utcnow() if user: last_queried_time = user.last_queried time_since_last_query = self._calculate_time_delta( last_queried_time, current_time) or 0 use_cached_values = time_since_last_query < (10 * 60) if not use_cached_values: user.last_queried = current_time database.session.commit() self._cache[ user. id] = use_cached_values # Use cached data for 10 minutes to prevent unnecessary load. return user user = Account() user.level = user_info['level'] user.username = username user.start_date = user_info['started_at'] database.session.add(user) database.session.commit() self._cache[user.id] = False return user