Skip to content
Snippets Groups Projects
Commit 8a34f17c authored by tfrisinger2's avatar tfrisinger2
Browse files

completed lab

parent 063cba38
No related branches found
No related tags found
No related merge requests found
from sys import stderr
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.exc import SQLAlchemyError, NoResultFound, MultipleResultsFound
from movies import MovieDatabase, Movie, Genre
from kivy.app import App
......@@ -9,6 +9,7 @@ from kivy.properties import StringProperty
class MoviesApp(App):
message = StringProperty('')
name = StringProperty('')
def __init__(self, **kwargs):
super().__init__(**kwargs)
......@@ -17,13 +18,77 @@ class MoviesApp(App):
self.session = self.movie_database.create_session()
def create_movie(self, title, action_selected, drama_selected, fantasy_selected):
pass
query = self.session.query(Genre).filter(Genre.name == 'Drama').one()
print(query.genre_id)
query = self.session.query(Genre).filter(Genre.name == 'Action').one()
print(query.genre_id)
query = self.session.query(Genre).filter(Genre.name == 'Fantasy').one()
print(query.genre_id)
try:
title_input = self.root.ids.title
title = title_input.text
genres = []
if action_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Action').one())
if drama_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Drama').one())
if fantasy_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Fantasy').one())
new_movie = Movie(
title=self.name,
genres=genres,
)
self.session.add(new_movie)
self.session.commit()
self.message = f'Successfully created movie: {title}'
except NoResultFound:
self.message = 'Error Genre not found'
except MultipleResultsFound:
self.message = f'Error: Multiple movies with the same title "{title}" found.'
except SQLAlchemyError as e:
self.message = f'Error: {str(e)}'
def update_movie(self, title, action_selected, drama_selected, fantasy_selected):
pass
try:
movie = self.session.query(Movie).filter(Movie.title == title).one()
genres = []
if action_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Action').one())
if drama_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Drama').one())
if fantasy_selected:
genres.append(self.session.query(Genre).filter(Genre.name == 'Fantasy').one())
Movie.genres = genres
self.session.add(movie)
self.session.commit()
self.message = f'Successfully updated movie: {title}'
except NoResultFound as e:
self.message = f'Error movie with tile {title} not found'
except MultipleResultsFound:
self.message = f'Error: Multiple movies with the same title "{title}" found.'
except SQLAlchemyError as e:
self.message = f'Error: {str(e)}'
def delete_movie(self, title):
pass
try:
movies_to_delete = self.session.query(Movie).filter(Movie.title == title)
if movies_to_delete.count() == 0:
raise ValueError(f'Movie with title {title} was not found')
movies_to_delete.delete()
self.session.commit()
self.message = f'Successfully deleted movie(s) with title: {title}'
except NoResultFound as e:
self.message = f'Error: {str(e)}'
except SQLAlchemyError as e:
self.message = f'Error: {str(e)}'
def main():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment