Пример #1
0
 def bind_topics_to_event(event_id, topics_ids: List[int]):
     with database.session() as db_session:
         for topic_id in topics_ids:
             event_topic = EventsTopics(
                 event_id=event_id,
                 topic_id=topic_id,
             )
             db_session.add(event_topic)
         db_session.commit()
Пример #2
0
 def create(city_id, start_date, end_date) -> Events:
     with database.session() as db_session:
         events = Events(
             city_id=city_id,
             start_date=start_date,
             end_date=end_date,
         )
         db_session.add(events)
         db_session.commit()
         return events
Пример #3
0
 def get_filters(
     city_id: int = None,
     topics_ids: List[int] = None,
     start_date: datetime.date = None,
     end_date: datetime.date = None,
 ) -> List[Filters]:
     with database.session() as db_session:
         query = db_session.query(Filters)
         if city_id:
             query = query.filter(Filters.city_id == city_id)
         if topics_ids:
             query = query.filter(Filters.topic_id.in_(topics_ids))
         if start_date:
             query = query.filter(
                 and_(Filters.from_date >= start_date,
                      Filters.to_date <= end_date))
         return query.all()
Пример #4
0
 def create(
     user_id: int,
     city_id: int = None,
     topic_id: int = None,
     from_date: datetime.date = None,
     to_date: datetime.date = None,
 ) -> Filters:
     with database.session() as db_session:
         filters = Filters(
             city_id=city_id,
             topic_id=topic_id,
             from_date=from_date,
             to_date=to_date,
             user_id=user_id,
         )
         db_session.add(filters)
         db_session.commit()
         return filters
Пример #5
0
 def get(
     city_id: int = None,
     topic_id: int = None,
     from_date: bool = False,
     to_date: bool = False,
 ) -> List[Events]:
     with database.session() as db_session:
         query = db_session.query(Events).outerjoin(Events.topics)
         if topic_id:
             query = query.options(contains_eager(
                 Events.topics)).filter(Events.id == topic_id)
         if city_id:
             query = query.filter(Events.city_id == city_id)
         if from_date and to_date:
             query = query.filter(
                 and_(Events.start_date >= to_date,
                      Events.end_date <= to_date))
         return query.all()
Пример #6
0
 def create(name: str) -> Topics:
     with database.session() as db_session:
         topic = Topics(name=name)
         db_session.add(topic)
         db_session.commit()
         return topic
Пример #7
0
 def get_by_ids(ids: List[int]) -> List[Users]:
     with database.session() as db_session:
         return db_session.query(Users).filter(Users.id.in_(ids)).all()