Esempio n. 1
0
    def new_movie(payload):
        """
        Add a Movie here
        :param payload:
        :return:
        """
        form = request.get_json(force=True)

        if Movies.query.filter_by(title=form['title']).first() is not None:
            abort(500, "Movie '{}' already exists...".format(form['title']))

        try:
            new_movie = Movies(title=form['title'],
                               release_date=form['release_date'],
                               rating=form['rating'])

            categories = [
                Category.query.filter_by(name=category).first()
                for category in form['categories']
            ]
            actors = [
                Actors.query.filter_by(name=actor).first()
                for actor in form['actors']
            ]
            new_movie.categories = categories
            new_movie.actors = actors

            # As I am not sure how to use 'uselist', this will suffice:
            # for category in categories:
            #     new_movie.categories.append(category)
            # for actor in actors:
            #     new_movie.actors.append(actor)

            new_movie.insert()
        except Exception as e:
            abort(500, e)

        return jsonify({'movie': [new_movie.format()]})