def get_level_prototype(self, level_key: str) -> Level: # Retrieves a level prototype from Firestore. dictionary: dict = db.document( f'level_prototypes/{level_key}').get().to_dict() # Returns a level object created return Level.from_dict(dictionary)
def get_level(self, user_key: str, session_key: str, level_key: str) -> Level: ref = db.document( f'users/{user_key}/sessions/{session_key}/data/level') dictionary: dict = ref.get().to_dict() return Level.from_dict(dictionary)
class Samples: ############### ## Variables ## ############### db: Database = Database() # sample_user: User = User('user_042', 42, 'german') sample_performance_dict = { "defeated_by_gaps": 1, "defeated_by_opponent_type_1": 1, "defeated_by_opponent_type_2": 1, "defeated_by_opponent_type_3": 0, "score": 600, "time": 45, "progress": 15, "difficulty": 80, } sample_performance: Performance = Performance( defeated_by_gaps=1, defeated_by_opponent_type_1=1, defeated_by_opponent_type_2=1, defeated_by_opponent_type_3=0, score=600, time=45, progress=15, difficulty=80, ) sample_session: Session = Session('session_001', 1, 'finished', db.generate_timestamp(), sample_performance) sample_level: Level = Level.from_dict({ 'key': 'level_01', 'id': 1, 'line_00': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' ], 'line_01': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' ], 'line_02': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' ], 'line_03': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' ], 'line_04': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'B' ], 'line_05': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D' ], 'line_06': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'S', 'S', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D' ], 'line_07': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D' ], 'line_08': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'S', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'C', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D' ], 'line_09': [ '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'B', 'B', 'B', 'B', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.', '.', 'D' ], 'line_10': [ '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'C', '.', '.', '.', '.', '.', 'C', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D' ], 'line_11': [ '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', 'B', '.', 'B', 'B', 'B', 'B', 'B', 'B', '.', '.', '.', 'D', 'D', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D' ], 'line_12': [ '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', '.', '.', '.', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', '.', 'D', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D' ], 'line_13': [ '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', '.', '.', '.', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', 'D', 'D', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D' ], 'line_14': [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', '.', '.', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', '.', 'Z', 'Z', 'Z', 'D', 'D' ] }) sample_user_1: User = User('user_001', 1, 'english') sample_user_2: User = User('user_002', 2, 'english') sample_user_3: User = User('user_003', 3, 'english') sample_user_4: User = User('user_004', 4, 'english') sample_session_1: Session = Session( 'session_001', 1, 'finished', db.generate_timestamp(), Performance(0, 1, 0, 2, 1500, 48, 200, 80)) sample_session_2: Session = Session( 'session_002', 2, 'finished', db.generate_timestamp(), Performance(0, 2, 0, 2, 3000, 130, 156, 100)) sample_session_3: Session = Session( 'session_003', 3, 'finished', db.generate_timestamp(), Performance(2, 0, 0, 2, 4500, 38, 137, 110)) sample_session_4: Session = Session( 'session_001', 1, 'finished', db.generate_timestamp(), Performance(1, 0, 0, 1, 4300, 48, 149, 90)) sample_session_5: Session = Session( 'session_002', 2, 'finished', db.generate_timestamp(), Performance(0, 0, 0, 0, 4300, 243, 200, 180)) sample_session_6: Session = Session( 'session_001', 1, 'finished', db.generate_timestamp(), Performance(0, 3, 1, 0, 2200, 38, 113, 65)) sample_session_7: Session = Session( 'session_002', 2, 'finished', db.generate_timestamp(), Performance(0, 2, 2, 0, 1100, 52, 200, 79)) sample_session_8: Session = Session( 'session_001', 1, 'finished', db.generate_timestamp(), Performance(2, 0, 0, 1, 500, 74, 31, 103))