Exemple #1
0
def add_cinema(name):
    db_session.execute(
        """
        INSERT INTO cinemas (id, name) VALUES (uuid(), %s)
        """, (name, ))

    click.echo('Cinema added')
Exemple #2
0
def buy_ticket(session, user, id, timestamp):
    session_data = get_session(session)

    if session_data is None:
        return False

    # i mamy first write wins
    decreasing_timestamp = 2000000000000000 - math.trunc(timestamp * 1000000)
    conditions = [
        session, id, user,
        datetime.fromtimestamp(timestamp), decreasing_timestamp
    ]

    query = """
    INSERT INTO tickets (session_id, id, user, timestamp)
    VALUES (%s, %s, %s, %s)
    USING TIMESTAMP %s
    """

    res = db_session.execute(query, conditions, trace=True)
    trace = res.get_query_trace()
    for event in trace.events:
        if event.description.startswith('Parsing'):
            print(event.description)

    db_session.execute(
        """
        UPDATE tickets_counter SET sold_count = sold_count + 1 WHERE movie_id = %s AND session_id = %s
        """, (session_data.movie_id, session))

    return True
Exemple #3
0
def add_movie(name, cover, description):
    if cover is not None:
        with open(cover, 'rb') as f:
            contents = f.read()
            cover = bytearray(contents)

    db_session.execute(addMovie, (name, cover, description))

    click.echo('Movie added')
Exemple #4
0
def add_movie(name, cover, description):
    if cover is not None:
        with open(cover, 'rb') as f:
            contents = f.read()
            cover = bytearray(contents)

    db_session.execute(
        """
        INSERT INTO movies (id, name, cover, description) VALUES (uuid(), %s, %s, %s)
        """, (name, cover, description))

    click.echo('Movie added')
def buy_ticket(session, user, id, timestamp):
    session_data = get_session(session)

    if session_data is None:
        return False

    # i mamy first write wins
    # decreasing_timestamp = 2000000000000000 - math.trunc(timestamp * 1000000)
    # conditions = [session, id, user, datetime.fromtimestamp(timestamp), decreasing_timestamp]
    conditions = [session, id, user, datetime.fromtimestamp(timestamp)]

    db_session.execute(buyTicket, conditions)
    db_session.execute(updateTicketCounter, (session_data.movie_id, session))

    return True
def get_movie(id):
    result = db_session.execute(getMovie, (id, ))

    if not result:
        return None

    return result[0]
def get_session(id):
    result = db_session.execute(getSession, (id, ))

    if not result:
        return None

    return result[0]
Exemple #8
0
def get_session(id):
    result = db_session.execute('SELECT * FROM sessions WHERE id = %s', (id, ))

    if not result:
        return None

    return result[0]
def get_tickets_count(movie_id):
    conditions = (movie_id, )

    res = db_session.execute(getTicketsCount, conditions)

    for r in res:
        yield r.session_id, r.sold_count
Exemple #10
0
def get_sessions(movie, cinema, date):
    if cinema is None:
        conditions = [movie, date.strftime('%Y-%m-%d')]
        query = getSessions
    else:
        conditions = [movie, date.strftime('%Y-%m-%d'), cinema]
        query = getCinemaSessions

    return db_session.execute(query, conditions)
Exemple #11
0
def get_tickets(session):
    session_data = get_session(session)

    if session_data is None:
        return []

    conditions = (session, session_data.hall_capacity)

    return list(db_session.execute(getTickets, conditions))
Exemple #12
0
def get_tickets_count(movie_id):
    conditions = (movie_id, )

    query = """
    SELECT sold_count, session_id FROM tickets_counter
    WHERE movie_id = %s
    """

    res = db_session.execute(query, conditions)

    for r in res:
        yield r.session_id, r.sold_count
Exemple #13
0
def get_tickets(session):
    session_data = get_session(session)

    if session_data is None:
        return []

    conditions = (session, session_data.hall_capacity)

    query = """
    SELECT * FROM tickets
    WHERE session_id = %s
    LIMIT %s
    """

    return list(db_session.execute(query, conditions))
Exemple #14
0
def get_sessions(movie, cinema, date):
    conditions = [movie, date.strftime('%Y-%m-%d')]
    table_name = 'sessions'

    if cinema is None:
        cinema_cond = ''
    else:
        table_name = 'sessions_by_cinema'
        cinema_cond = 'AND cinema_id = %s'
        conditions.append(cinema)

    query = """
    SELECT * FROM {}
    WHERE movie_id = %s AND date = %s
    {}
    """.format(table_name, cinema_cond)

    return db_session.execute(query, conditions)
Exemple #15
0
def add_session(movie, date, time, cinema, hall_name, hall_cap):
    # get first cinema if not specified
    if cinema is None:
        cinema = db_session.execute('SELECT * FROM cinemas')

        if not cinema:
            raise 'No cinemas'

        cinema = cinema[0].id

    # get first movie if not specified
    if movie is None:
        movie = db_session.execute('SELECT * FROM movies')

        if not movie:
            raise 'Movie not found'

        movie = movie[0].id

    # default date to now
    if date is None:
        date = pydate.today().strftime('%Y-%m-%d')

    if time is None:
        time = datetime.now().strftime('%H:%M') + ':00'

    sess_uuid = uuid.uuid4()

    db_session.execute(
        """
        INSERT INTO sessions (movie_id, date, time, cinema_id, id, hall_capacity, hall_name)
        VALUES (%s, %s, %s, %s, %s, %s, %s)
        """, (movie, date, time, cinema, sess_uuid, hall_cap, hall_name))

    db_session.execute(
        """
        INSERT INTO sessions_by_cinema (movie_id, date, time, cinema_id, id, hall_capacity, hall_name)
        VALUES (%s, %s, %s, %s, %s, %s, %s)
        """, (movie, date, time, cinema, sess_uuid, hall_cap, hall_name))

    click.echo('Session added')
Exemple #16
0
def add_session(movie, date, time, cinema, hall_name, hall_cap):
    # get first cinema if not specified
    if cinema is None:
        cinema = db_session.execute(getCinemas)

        if not cinema:
            raise 'No cinemas'

        cinema = cinema[0].id
    else:
        cinema = uuid.UUID(cinema)

    # get first movie if not specified
    if movie is None:
        movie = db_session.execute(getMovies)

        if not movie:
            raise 'Movie not found'

        movie = movie[0].id
    else:
        movie = uuid.UUID(movie)

    # default date to now
    if date is None:
        date = pydate.today().strftime('%Y-%m-%d')

    if time is None:
        time = datetime.now().strftime('%H:%M') + ':00'

    sess_uuid = uuid.uuid4()

    db_session.execute(
        addSession,
        (movie, date, time, cinema, sess_uuid, hall_cap, hall_name))
    db_session.execute(
        addCinemaSession,
        (movie, date, time, cinema, sess_uuid, hall_cap, hall_name))

    click.echo('Session added {}'.format(sess_uuid))
Exemple #17
0
def get_movies():
    return list(db_session.execute(getMovies))
Exemple #18
0
def add_cinema(name):
    db_session.execute(addCinema, (name, ))

    click.echo('Cinema added')
Exemple #19
0
def get_cinemas():
    return list(db_session.execute('SELECT * FROM cinemas'))
Exemple #20
0
def get_movies():
    return list(db_session.execute('SELECT * FROM movies'))
Exemple #21
0
def get_cinemas():
    return list(db_session.execute(getCinemas))