def del_event(time, day): session = make_session() event = session.query(Event).filter_by(time=time, day=day).first() if event is not None: session.delete(event) session.commit() session.close()
def del_all_events(): session = make_session() events = session.query(Event).all() for event in events: session.delete(event) session.commit() session.close()
def del_pdt_events(): session = make_session() events = session.query(Event).filter_by(for_pdts=True).all() for event in events: session.delete(event) session.commit() session.close()
def del_user(user_id): session = make_session() user = session.query(User).filter_by(user_id=user_id).first() if user is not None: session.delete(user) session.commit() session.close()
def del_events_for_a_day(day): session = make_session() events = session.query(Event).filter_by(day=day).all() for event in events: session.delete(event) session.commit() session.close()
def check_database(): database_name = database_getter(without_exceptions=True) if database_name: if database_name == DATABASE_NAME: session = make_session() try: superuser = session.query(User).filter_by( user_id=SUPERUSER_ID).first() if superuser is None: session.add(User(SUPERUSER_ID, True, False, False, 0)) else: superuser.is_admin, superuser.is_pdt, superuser.is_promotion = True, False, False superuser.subscription = 0 session.commit() session.close() print('Database was checked!') except Exception: session.close() remove(database_name) __make_database() print('Database was recreated and filled!') else: remove(database_name) __make_database() print('Database was created and filled!') else: __make_database() print('Database was created and filled!')
def update_event(time, day, chat_id, message_id, for_admins, for_pdts, for_promotions): session = make_session() event = session.query(Event).filter_by(time=time, day=day).first() if event is None: session.add(Event(time, day, chat_id, message_id, for_admins, for_pdts, for_promotions)) else: event.chat_id, event.message_id = chat_id, message_id event.for_admins, event.for_pdts, event.for_promotions = for_admins, for_pdts, for_promotions session.commit() session.close()
def update_subscription_days(): session = make_session() promotions = session.query(User).filter_by(is_promotion=True).all() for promotion in promotions: if promotion.subscription <= 1: promotion.is_promotion = False promotion.subscription = 0 else: promotion.subscription -= 1 session.commit() session.close()
def update_user(user_id, is_admin, is_pdt, is_promotion, subscription): session = make_session() user = session.query(User).filter_by(user_id=user_id).first() if user is None: session.add(User(user_id, is_admin, is_pdt, is_promotion, subscription)) else: user.is_admin, user.is_pdt, user.is_promotion = is_admin, is_pdt, is_promotion user.subscription = subscription session.commit() session.close()
def get_event(time, day): session = make_session() event = session.query(Event).filter_by(time=time, day=day).first() session.close() return event
def get_promotion_users(): session = make_session() promotions = session.query(User).filter_by(is_promotion=True).all() session.close() return promotions
def get_pdt_users(): session = make_session() pdts = session.query(User).filter_by(is_pdt=True).all() session.close() return pdts
def get_admin_users(): session = make_session() admins = session.query(User).filter_by(is_admin=True).all() session.close() return admins
def get_all_users(): session = make_session() users = session.query(User).all() session.close() return users
def get_user(user_id): session = make_session() user = session.query(User).filter_by(user_id=user_id).first() session.close() return user
def get_admin_events(): session = make_session() admin_events = session.query(Event).filter_by(for_admins=True).all() session.close() return admin_events
def __fill_database(): session = make_session() session.add(User(SUPERUSER_ID, True, False, False, 0)) session.commit() session.close()
def get_all_events(): session = make_session() events = session.query(Event).all() session.close() return events
def get_promotion_events(): session = make_session() promotion_events = session.query(Event).filter_by(for_promotions=True).all() session.close() return promotion_events