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)
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)
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)
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)
'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)