def add_cinema(name): db_session.execute( """ INSERT INTO cinemas (id, name) VALUES (uuid(), %s) """, (name, )) click.echo('Cinema 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 ] 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
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')
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]
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
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)
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))
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
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))
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)
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')
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))
def get_movies(): return list(db_session.execute(getMovies))
def add_cinema(name): db_session.execute(addCinema, (name, )) click.echo('Cinema added')
def get_cinemas(): return list(db_session.execute('SELECT * FROM cinemas'))
def get_movies(): return list(db_session.execute('SELECT * FROM movies'))
def get_cinemas(): return list(db_session.execute(getCinemas))