def get_pin_data(id: int, update_pin_counter: int = 2, update_pin_matches: int = 2) -> "pin_code, pin_counter, pin_matches": """ :param id: user telegram id :param update_pin_counter: 2 - without update; 1 - increment pin counter; 0 - nullify pin counter :param update_pin_matches: 2 - without update; 1 - increment pin matches; 0 - nullify pin matches :return: pin code, pin counter and pin matches """ user = db.query(User).filter_by(user_id=id).first() if update_pin_counter < 2: # increment or nullify pin counter user.pin_counter = (user.pin_counter + 1 if update_pin_counter else 0) db.commit() if update_pin_matches < 2: # increment or nullify pin matches user.pin_matches = (user.pin_matches + 1 if update_pin_matches else 0) db.commit() return user.pin_code, user.pin_counter, user.pin_matches
def get_last_session(id: int): return db.query(BotSession).filter_by(user_id=id).order_by( desc(BotSession.start_session)).first()
def get_user(id: int): return db.query(User).filter_by(user_id=id).first()