Ejemplo n.º 1
0
def add_actor(payload):
    # Extract relevant details from request.
    req_data = request.get_json()
    name = req_data['name']
    age = req_data['age']
    gender = req_data['gender']

    # Check if age is integer
    if type(age) is int:
        pass
    else:
        abort(422)
    # Create new
    newActor = Actor(
        name=name,
        age=age,
        gender=gender
    )
    
    # Save
    try:
        newActor.insert()
    except:
        abort(500)
    finally:
        # Return
        actor = newActor.format()

        return jsonify({
            'success': True,
            'actors': actor
        })
Ejemplo n.º 2
0
    def create_actors(jwt):
        '''
        Creates an actor in the database.
        Requieres [create:actors] permission.
        '''
        body = request.get_json()
        name = body.get('name', None)
        age = body.get('age', None)
        gender = body.get('gender', None)
        picture_link = body.get('picture_link', None)
        bio = body.get('bio', None)

        if name is None:
            abort(400)
        elif age is None:
            abort(400)
        elif gender is None:
            abort(400)
        elif bio is None:
            abort(400)

        try:
            actor = Actor(name=name,
                          age=age,
                          gender=gender,
                          picture_link=picture_link,
                          bio=bio)

            actor.insert()

            return jsonify({'success': True, 'created': actor.id})
        except Exception as e:
            print(e)
            abort(422)
Ejemplo n.º 3
0
def add_actor(token):
    data = request.get_json()
    actor_name = data.get('name', None)
    actor_age = data.get('age', None)
    actor_gender = data.get('gender', None)

    if not actor_name or not actor_age or not actor_gender:
        abort(400)

    existing_actor = Actor.query.filter(
        Actor.name == actor_name,
        Actor.age == actor_age,
        Actor.gender == actor_gender).one_or_none()

    if existing_actor:
        abort(422)

    try:
        actor_data = Actor(name=actor_name, age=actor_age, gender=actor_gender)
        actor_data.insert()

        return jsonify({
            'success': True,
            'actor': actor_data.format()
        }), 201

    except Exception as error:
        print(error)
        abort(422)
Ejemplo n.º 4
0
 def test_401_update_actor_casting_assistant(self):
     actor = Actor('malek', 23, 'Male')
     actor.insert()
     res = self.client().patch('/actor/' + str(actor.id),
                               json={'age': 23},
                               headers=settingup_auth('casting_assistant'))
     self.assertEqual(res.status_code, 401)
Ejemplo n.º 5
0
    def create_actor(payload):
        try:
            request_body = request.get_json()
            if 'name' not in request_body \
                    or 'date_of_birth' not in request_body:
                raise KeyError

            if request_body['name'] == '' \
                    or request_body['date_of_birth'] == '':
                raise ValueError

            full_name = ''
            if 'full_name' in request_body:
                full_name = request_body["full_name"]

            new_actor = Actor(request_body['name'], full_name,
                              request_body['date_of_birth'])
            new_actor.insert()

            return jsonify({
                "success": True,
                "created_actor_id": new_actor.id
            }), 201

        except (TypeError, KeyError, ValueError):
            abort(422)

        except Exception:
            abort(500)
Ejemplo n.º 6
0
    def setUp(self):
        """Define test variables and initialize app."""
        self.app = app
        self.client = self.app.test_client
        self.database_name = "capstone_test"
        self.database = f"postgresql://*****:*****@localhost/"
        self.database_path = self.database + self.database_name
        # setup_db(self.app, self.database_path)

        # binds the app to the current context

        with self.app.app_context():
            self.app.config["SQLALCHEMY_DATABASE_URI"] = self.database_path
            self.app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
            self.db = db
            self.db.app = self.app
            # self.db.init_app(self.app)
            # create all tables
            self.db.drop_all()
            self.db.create_all()

        with self.app.app_context():
            for i in range(10):
                new_actor = Actor(name='ahmed', age=30, gender='male')
                new_movie = Movie(title='new movie', start_time='2015-5-6')
                new_actor.insert()
                new_movie.insert()
Ejemplo n.º 7
0
    def create_actor(payload):
        body = request.get_json()

        if body is None:
            abort(401)

        name = body.get("name")
        age = body.get("age")
        gender = body.get("gender")
        movies_ids = body.get("movies_ids", [])

        if len(movies_ids) == 0:
            abort(401)

        try:
            actor = Actor(name=name, age=age, gender=gender)
            actor.insert()

            for movie_id in movies_ids:
                act_on = Act(movie_id=movie_id, actor_id=actor.id)
                act_on.insert()

            return jsonify({"success": True, "created_id": actor.id})
        except Exception:
            abort(422)
Ejemplo n.º 8
0
    def test_401_delete_actor_fail(self):
        actor = Actor('mark', 23, 'Male')
        actor.insert()

        res = self.client().delete('/actors/' + str(actor.id),
                                   headers=setup_auth(''))
        self.assertEqual(res.status_code, 401)
Ejemplo n.º 9
0
 def create_actor():
     name, age, sex = get_validated_body_actor()
     try:
         actor = Actor(name=name, age=age, sex=sex)
         actor.insert()
     except Exception:
         abort(500, "Internal Error")
     return jsonify({"success": True, "actor": actor.json()}), 200
Ejemplo n.º 10
0
 def test_403_delete_actor_casting_assistant(self):
     actor = Actor(name='Maha', age=10, gendar='Female')
     actor.insert()
     actorId = actor.id
     res = self.client().delete(f'/actors/{actor.id}',
                                headers=self.casting_assistant)
     data = json.loads(res.data)
     self.assertEqual(res.status_code, 403)
     self.assertEqual(data['success'], False)
Ejemplo n.º 11
0
 def insertion():
     movie = Movie(id=1, title='test1', release_date='01/01/2010')
     movie.insert()
     actor = Actor(id=1, name='azedine', age='23', gender='man')
     actor.insert()
     movie = Movie(id=2, title='test2', release_date='02/02/2010')
     movie.insert()
     actor = Actor(id=2, name='aziz', age='34', gender='female')
     actor.insert()
Ejemplo n.º 12
0
 def test_drop_actor_casting_director(self):
     actor = Actor('malek', 23, 'Male')
     actor.insert()
     res = self.client().delete('/actor/' + str(actor.id),
                                headers=settingup_auth('casting_director'))
     data = json.loads(res.data)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(data['success'], True)
     self.assertEqual(int(data['deleted']), actor.id)
Ejemplo n.º 13
0
    def test_422_post_actors_fail(self):
        actor = Actor('mark', 23, 'Male')
        actor.insert()

        res = self.client().post('/actors',
                                 json={},
                                 headers=setup_auth('casting_director'))
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 422)
        self.assertEqual(data['success'], False)
Ejemplo n.º 14
0
 def test_update_actor_executive_producer(self):
     actor = Actor('malek', 23, 'Male')
     actor.insert()
     res = self.client().patch('/actor/' + str(actor.id),
                               json={'age': 23},
                               headers=settingup_auth('executive_producer'))
     data = json.loads(res.data)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(data['success'], True)
     self.assertEqual(actor.age, 23)
Ejemplo n.º 15
0
 def test_update_actor_casting_director(self):
     actor = Actor('malek', 23, 'Male')
     actor.insert()
     res = self.client().patch('/actor/' + str(actor.id),
                               json={'age': 23},
                               headers=settingup_auth('casting_director'))
     data = json.loads(res.data)
     self.assertEqual(res.status_code, 401)
     self.assertEqual(data['success'], False)
     self.assertEqual(actor.get_actor()['age'], 23)
Ejemplo n.º 16
0
 def new_actor(jwt):
     try:
         data = request.get_json('actor')
         actor = Actor(name=data['name'],
                       age=data['age'],
                       gender=data['gender'])
         actor.insert()
     except Exception:
         abort(400)
     return jsonify({'success': True, 'actors': [actor.format()]})
Ejemplo n.º 17
0
    def test_012_delete_actor_by_ID(self):
        new_actor = Actor(name='one for delete', age='40', gender='female')

        new_actor.insert()
        response = self.client().delete(
            '/actors/{}'.format(new_actor.id),
            headers={"Authorization": "Bearer {}".format(self.producer_token)})
        data = json.loads(response.data)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(data['success'], True)
Ejemplo n.º 18
0
    def test_delete_actor_executive_producer(self):
        actor = Actor('mark', 23, 'Male')
        actor.insert()

        res = self.client().delete('/actors/' + str(actor.id),
                                   headers=setup_auth('executive_producer'))
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
        self.assertEqual(int(data['deleted']), actor.id)
Ejemplo n.º 19
0
    def test_patch_actor_casting_director(self):
        actor = Actor('mark', 23, 'Male')
        actor.insert()

        res = self.client().patch('/actors/' + str(actor.id),
                                  json={'age': 25},
                                  headers=setup_auth('casting_director'))
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
        self.assertEqual(actor.get_actor()['age'], 25)
Ejemplo n.º 20
0
    def post_actor(payload):
        data = request.get_json()
        try:
            actor = Actor(name=data['name'],
                          gender=data['gender'],
                          age=data['age'])
            actor.insert()

            return jsonify({'success': True, 'actor': actor.format()}), 200
        except:
            abort(422)
Ejemplo n.º 21
0
    def create_actor(payload):
        print('payload', payload)

        body = request.get_json()
        req_name = body.get('name')
        req_age = body.get('age')
        req_gender = body.get('gender')

        actor = Actor(name=req_name, age=req_age, gender=req_gender)
        actor.insert()

        return jsonify({'success': True, 'movie': actor.long()})
Ejemplo n.º 22
0
 def add_actor(payload):
     try:
         body = request.get_json()
         name_requested = body.get("name", None)
         age_requested = body.get("age", None)
         gender_requested = body.get("gender", None)
         actor = Actor(name=name_requested,
                       age=age_requested,
                       gender=gender_requested)
         actor.insert()
         return jsonify({"success": True, "actor_created": actor.format()})
     except:
         abort(422)
Ejemplo n.º 23
0
 def create_actor(jwt):
     data = request.get_json()
     name = data.get('name')
     age = data.get('age')
     gender = data.get('gender')
     try:
         actor = Actor(name=name, age=age, gender=gender)
         actor.insert()
         return jsonify({
             'success': True,
         })
     except Exception:
         abort(422)
Ejemplo n.º 24
0
    def create_actor(jwt):

        try:
            data = request.get_json()

            actor = Actor(name=data.get('name'),
                          age=data.get('age'),
                          gender=data.get('gender'))
            actor.insert()

            return jsonify({'success': True, 'actors': actor.format()}), 200

        except BaseException:
            abort(422)
Ejemplo n.º 25
0
 def test_update_actor_casting_director(self):
     actor = Actor(name='Maha', age=50, gendar='Female')
     actor.insert()
     actorId = actor.id
     res = self.client().patch(f'/actors/{actor.id}',
                               json={
                                   'name': 'EDIT name',
                                   'age': 10,
                                   'gendar': 'female'
                               },
                               headers=self.casting_director)
     data = json.loads(res.data)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(data['success'], True)
Ejemplo n.º 26
0
    def test_delete_actor(self):
        new_actor = Actor(
            name="Njoud",
            gender="female",
            age=25
        )
        new_actor.insert()
        res = self.client().delete(f'/actors/{new_actor.id}', headers={
            'Authorization': executive_producer_token
        })

        data = json.loads(res.data)

        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
Ejemplo n.º 27
0
    def post_actor(payload):
        if request.method == "POST":
            body = request.get_json()
            name = body.get('name', None)
            age = body.get('age', None)
            gender = body.get('gender', None)

            actor = Actor(name=name, age=age, gender=gender)
            actor.insert()

            return jsonify({
                'success': True,
                'created_actor': actor.name,
                'total_actors': len(Actor.query.all())
            })
Ejemplo n.º 28
0
def create_actor(payload):
    try:
        # params from request
        body = request.get_json()
        name = body.get('name')
        age = body.get('age')
        gender = body.get('gender')
        movie_id = body.get('movie_id')
        #
        actor = Actor(name, age, gender, movie_id)
        print(actor.format())
        actor.insert()
        return jsonify({"success": True, "actor": actor.format()})
    except BaseException:
        abort(422)
Ejemplo n.º 29
0
    def add_actor(jwt):
        body = request.get_json()
        req_name = body.get('name')
        req_age = body.get('age')
        req_gender = body.get('gender')

        if not req_name:
            abort(422)

        actor = Actor(name=req_name, age=req_age, gender=req_gender)
        actor.insert()

        return jsonify({
        'success': True,
        'actors': actor.format()
        })
Ejemplo n.º 30
0
    def create_actor(payload):
        body = request.get_json()

        new_name = body.get('name', None)
        new_age = body.get('age', None)
        new_gender = body.get('gender', None)

        if (not new_name) or (not new_age) or (not new_gender):
            abort(400)

        new_actor = Actor(name=new_name, age=new_age, gender=new_gender)
        new_actor.insert()

        actor_list = Actor.query.filter(Actor.name == new_name).all()
        actor = [a.long() for a in actor_list]

        return jsonify({'success': True, 'actors': actor})