0% found this document useful (0 votes)
9 views3 pages

Movie Booking API Functions

The document outlines a Flask web application for managing a movie booking system, including user and admin functionalities. Key features include user registration, login, viewing movies and showtimes, booking tickets, and managing bookings. Admin functionalities allow for adding, updating, and deleting movies, as well as generating reports on bookings and earnings.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views3 pages

Movie Booking API Functions

The document outlines a Flask web application for managing a movie booking system, including user and admin functionalities. Key features include user registration, login, viewing movies and showtimes, booking tickets, and managing bookings. Admin functionalities allow for adding, updating, and deleting movies, as well as generating reports on bookings and earnings.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

# ---------- USER FUNCTIONS ----------

@[Link]('/register_user', methods=['POST'])
def register_user():
data = [Link]
user = User(**data)
[Link](user)
[Link]()
return jsonify({'message': 'User registered successfully'})

@[Link]('/login_user', methods=['POST'])
def login_user():
data = [Link]
user = [Link].filter_by(username=data['username'],
password=data['password']).first()
if user:
session['user_id'] = [Link]
return jsonify({'message': 'User logged in'})
return jsonify({'message': 'Invalid credentials'}), 401

@[Link]('/view_movies')
def view_movies():
movies = [Link]()
return jsonify([{'id': [Link], 'title': [Link], 'genre': [Link], 'rating':
[Link], 'duration': [Link]} for m in movies])

@[Link]('/view_showtimes/<int:movie_id>')
def view_showtimes(movie_id):
shows = [Link].filter_by(movie_id=movie_id).all()
return jsonify([{'id': [Link], 'time': s.show_time, 'language': [Link],
'price': [Link]} for s in shows])

@[Link]('/book_ticket', methods=['POST'])
def book_ticket():
data = [Link]
booking = Booking(
user_id=[Link]('user_id'),
show_id=data['show_id'],
seats=data['seats'],
booking_time=str([Link]())
)
[Link](booking)
[Link]()
return jsonify({'message': 'Ticket booked'})

@[Link]('/view_booking_history')
def view_booking_history():
bookings = [Link].filter_by(user_id=[Link]('user_id')).all()
return jsonify([{'show_id': b.show_id, 'seats': [Link], 'time':
b.booking_time} for b in bookings])

@[Link]('/logout_user')
def logout_user():
[Link]('user_id', None)
return jsonify({'message': 'User logged out'})
@[Link]('/cancel_booking/<int:booking_id>', methods=['DELETE'])
def cancel_booking(booking_id):
booking = [Link](booking_id)
if booking and booking.user_id == [Link]('user_id'):
[Link](booking)
[Link]()
return jsonify({'message': 'Booking cancelled'})
return jsonify({'message': 'Unauthorized or not found'}), 403

# ---------- ADMIN FUNCTIONS ----------

@[Link]('/login_admin', methods=['POST'])
def login_admin():
data = [Link]
admin = [Link].filter_by(username=data['username'],
password=data['password']).first()
if admin:
session['admin_id'] = [Link]
return jsonify({'message': 'Admin logged in'})
return jsonify({'message': 'Invalid admin credentials'}), 401

@[Link]('/add_movie', methods=['POST'])
def add_movie():
data = [Link]
movie = Movie(**data)
[Link](movie)
[Link]()
return jsonify({'message': 'Movie added'})

@[Link]('/add_show', methods=['POST'])
def add_show():
data = [Link]
show = Show(**data)
[Link](show)
[Link]()
return jsonify({'message': 'Show added'})

@[Link]('/view_all_movies')
def view_all_movies():
movies = [Link]()
return jsonify([{'id': [Link], 'title': [Link]} for m in movies])

@[Link]('/update_movie/<int:movie_id>', methods=['PUT'])
def update_movie(movie_id):
data = [Link]
movie = [Link](movie_id)
if movie:
for key, value in [Link]():
setattr(movie, key, value)
[Link]()
return jsonify({'message': 'Movie updated'})
return jsonify({'message': 'Movie not found'}), 404

@[Link]('/delete_movie/<int:movie_id>', methods=['DELETE'])
def delete_movie(movie_id):
movie = [Link](movie_id)
if movie:
[Link](movie)
[Link]()
return jsonify({'message': 'Movie deleted'})
return jsonify({'message': 'Movie not found'}), 404

@[Link]('/view_all_bookings')
def view_all_bookings():
bookings = [Link]()
return jsonify([{'user_id': b.user_id, 'show_id': b.show_id, 'seats':
[Link]} for b in bookings])

@[Link]('/manage_seats', methods=['POST'])
def manage_seats():
data = [Link] # {show_id: 1, seat_no: "A1", is_booked: False,
seat_type: "VIP"}
seat = Seat(**data)
[Link](seat)
[Link]()
return jsonify({'message': 'Seat updated/added'})

@[Link]('/logout_admin')
def logout_admin():
[Link]('admin_id', None)
return jsonify({'message': 'Admin logged out'})

@[Link]('/generate_report')
def generate_report():
bookings = [Link]()
total_earnings = 0
for b in bookings:
show = [Link](b.show_id)
if show:
total_earnings += [Link]
return jsonify({'total_bookings': len(bookings), 'total_earnings':
total_earnings})

# ---------- MAIN ----------


if __name__ == '__main__':
with app.app_context():
db.create_all()
[Link](debug=True)

✅ How to Use
1. Save the code in [Link].
2. Run the server:
3. python [Link]
4. Use Postman or any API tool to test endpoints like:
o POST /register_user with JSON {"username": "john", ...}
o POST /login_user, POST /book_ticket, etc.

You might also like