예제 #1
0
def actor_add_relation():
    """
    Add a movie to actor's filmography
    """
    data = get_request_data()
    KEY_DICT = ['id', 'relation_id']
    for dat in data:
        if dat not in set(KEY_DICT):
            err = 'Wrong key'
            return make_response(jsonify(error=err), 400)

    ### YOUR CODE HERE ###
    if data.get('id'):
        try:
            row_id = int(data['id'])
        except:
            err = 'Id must be integer'
            return make_response(jsonify(error=err), 400)
        obj = Actor.query.filter_by(id=data['id']).first()
        try:
            try_actor = {
                k: v
                for k, v in obj.__dict__.items() if k in ACTOR_FIELDS
            }
        except:
            err = 'Actor with such id does not exist'
            return make_response(jsonify(error=err), 400)
        if data.get('relation_id'):
            try:
                row_id = int(data['relation_id'])
            except:
                err = 'Id must be integer'
                return make_response(jsonify(error=err), 400)
            obj = Movie.query.filter_by(id=data['relation_id']).first()
            try:
                try_movie = {
                    k: v
                    for k, v in obj.__dict__.items() if k in MOVIE_FIELDS
                }
            except:
                err = 'Movie with such id does not exist'
                return make_response(jsonify(error=err), 400)
        else:
            err = 'No related_id specified'
            return make_response(jsonify(error=err), 400)
        related_movie = Movie.query.filter_by(id=data['relation_id']).first()
        actor = Actor.add_relation(data['id'],
                                   related_movie)  # add relation here
        rel_actor = {
            k: v
            for k, v in actor.__dict__.items() if k in ACTOR_FIELDS
        }
        rel_actor['filmography'] = str(actor.filmography)
        return make_response(jsonify(rel_actor), 200)
    else:
        err = 'No id specified'
        return make_response(jsonify(error=err), 400)
예제 #2
0
def actor_add_relation():
    """
    Add a movie to actor's filmography
    """
    data = get_request_data()
    if 'id' in data.keys():
        try:
            row_id = int(data['id'])
            relation_id = data['relation_id']
            obj_movie = Movie.query.filter_by(id=relation_id).first()
            actor = Actor.add_relation(row_id, obj_movie)
            rel_actor = {
                k: v
                for k, v in actor.__dict__.items() if k in ACTOR_FIELDS
            }
            rel_actor['filmography'] = str(actor.filmography)
            return make_response(jsonify(rel_actor), 200)

        except:
            err = 'Id must be integer'
            return make_response(jsonify(error=err), 400)
예제 #3
0
def actor_add_relation():
    """
    Add a movie to actor's filmography
    """
    data = get_request_data()
    if 'id' in data.keys():
        if 'relation_id' in data.keys():
            try:
                actor_id = int(data['id'])
            except:
                err = "actor_id must be an integer"
                return make_response(jsonify(error=err), 400)
            try:
                row_m_id = int(data['relation_id'])
            except:
                err = "movie_id must be integer"
                return make_response(jsonify(error=err), 400)
            movie = Movie.query.filter_by(id=row_m_id).first()
            actor = Actor.add_relation(actor_id, movie)
            try:
                rel_actor = {
                    k: v
                    for k, v in actor.__dict__.items() if k in ACTOR_FIELDS
                }
            except:
                err = 'Record with such id does not exist'
                return make_response(jsonify(error=err), 400)

            rel_actor['filmography'] = str(actor.filmography)
            return make_response(jsonify(rel_actor), 200)
        else:
            err = 'No relation_id specified'
            return make_response(jsonify(error=err), 400)
    else:
        err = 'No id specified'
        return make_response(jsonify(error=err), 400)
예제 #4
0
 def actor_add_relation():
     """
     Add a movie to actor's filmography
     """
     #data = get_request_data()
     data = {
         'name': 'Megan Fox',
         'gender': 'female',
         'date_of_birth': dt.strptime('16.05.1986', '%d.%m.%Y').date(),
         'name': 'Transformers',
         'genre': 'action',
         'year': 2007
     }
     ### YOUR CODE HERE ###
     movie_data = {k: v for k, v in data.items() if k in MOVIE_FIELDS}
     movie = Movie.create(movie_data)
     # use this for 200 response code
     actor = Actor.add_relation(data["id"], movie)  # add relation here
     rel_actor = {
         k: v
         for k, v in actor.__dict__.items() if k in ACTOR_FIELDS
     }
     rel_actor['filmography'] = str(actor.filmography)
     return make_response(jsonify(rel_actor), 200)
예제 #5
0
    'SQLALCHEMY_TRACK_MODIFICATIONS'] = False  # silence the deprecation warning

db.init_app(app)

with app.app_context():
    db.create_all()
    # actor = Actor.create(**data_actor)
    # print('created actor:', actor.__dict__, '\n')
    #
    # movie = Movie.create(**data_movie)
    # print('created movie:', movie.__dict__, '\n')

    upd_actor = Actor.update(1, **data_actor_upd)
    print('updated actor:', upd_actor.__dict__, '\n')

    upd_movie = Movie.update(1, **data_movie_upd)
    print('updated movie:', upd_movie.__dict__, '\n')

    add_rels_actor = Actor.add_relation(1, upd_movie)
    movie_2 = Movie.create(**data_movie)
    add_more_rels_actor = Actor.add_relation(1, movie_2)
    print('relations list:', add_more_rels_actor.filmography, '\n')

    # clear_rels_actor = Actor.clear_relations(1)
    # print('all relations cleared:', clear_rels_actor.filmography, '\n')

    # del_actor = Actor.delete(15)
    # print('Actor deleted:', del_actor)
    #
    # del_movie = Movie.delete(1)
    # print('Movie deleted:', del_movie)