예제 #1
0
    def get(self):
        """
        Fetch the list of users, including their email, admin clear
        """

        user_db_data = user.fetchall(g.database)

        response_data = {'users': []}
        for user_entry in user_db_data:
            response_data['users'].append({
                'user_id':
                user_entry['user_id'],
                'email':
                user_entry['email'],
                'name':
                user_entry['name'],
                'group_name':
                user_entry['group_name'],
                'admin':
                user_entry['admin'],
                'timestamp':
                user_entry['date_created']
            })

        return jsonify(response_data), 201
예제 #2
0
    def test_get_all_users(self):
        """
        test inserts two new users, then fetches from the table with the db
        get function and raw sql to compare the results. Checks the number of
        returned rows is the same, and that all of the columns match from
        each returned row.
        """

        email1 = "*****@*****.**"
        self.create_example_user(email1)

        email2 = "*****@*****.**"

        self.create_example_user(email2)

        users_get_endpoint_result = user.fetchall(self.database)

        verify_query = """
            SELECT * FROM USERS;"""
        self.database.cursor.execute(verify_query)

        verify_rows = [r._asdict() for r in self.database.cursor.fetchall()]

        assert len(verify_rows) == len(users_get_endpoint_result)

        for (email, name, group_name, hashed_password, admin) in [
            (r['email'], r['name'], r['group_name'], r['hashed_password'],
             r['admin']) for r in users_get_endpoint_result
        ]:

            self.verify_user_data(email, name, group_name, hashed_password,
                                  admin)
예제 #3
0
    def get(self, user_id):
        """
        Fetch a single user's data if a user_id is specified.
        Otherwise fetch the list of all users.
        Returned info contains user_id, name, group name,email,
        admin status, and date_created.
        """

        if user_id:

            user_db_data = user.read(g.database, user_id)

            if not user_db_data:
                error(404, "User id not recognized")

            if not g.logged_in_user_is_admin and g.logged_in_user_id != user_id:
                error(
                    403,
                    "Logged in user not admin and doesn't match requested user id."
                )

            response_data = {
                "user_id": user_db_data["user_id"],
                "email": user_db_data["email"],
                "name": user_db_data["name"],
                "group_name": user_db_data["group_name"],
                "admin": user_db_data["admin"],
                "timestamp": user_db_data["date_created"]
            }
            return jsonify(response_data), 201

        else:
            # No user_id given; this is a GET all users request.
            if not g.logged_in_user_is_admin:
                error(403, "Logged in user not admin ")

            user_db_data = user.fetchall(g.database)

            response_data = {"users": []}
            for user_entry in user_db_data:
                response_data["users"].append({
                    "user_id":
                    user_entry["user_id"],
                    "email":
                    user_entry["email"],
                    "name":
                    user_entry["name"],
                    "group_name":
                    user_entry["group_name"],
                    "admin":
                    user_entry["admin"],
                    "timestamp":
                    user_entry["date_created"]
                })

            return jsonify(response_data), 201
예제 #4
0
    def get(self, user_id):
        """
        Fetch the list of users, with their user_id, name, group name,
        email, admin status, and date_created.
        """

        print("in endpoint; getting with userid = ", user_id)

        if user_id:
            user_db_data = user.read(g.database, user_id)

            print("user db read result: ", user_db_data)

            if user_db_data:
                response_data = {
                    "user_id": user_db_data["user_id"],
                    "email": user_db_data["email"],
                    "name": user_db_data["name"],
                    "group_name": user_db_data["group_name"],
                    "admin": user_db_data["admin"],
                    "timestamp": user_db_data["date_created"]
                }
                return jsonify(response_data), 201

            else:
                error(404, "User id not recognized")

        else:
            user_db_data = user.fetchall(g.database)

            response_data = {"users": []}
            for user_entry in user_db_data:
                response_data["users"].append({
                    "user_id":
                    user_entry["user_id"],
                    "email":
                    user_entry["email"],
                    "name":
                    user_entry["name"],
                    "group_name":
                    user_entry["group_name"],
                    "admin":
                    user_entry["admin"],
                    "timestamp":
                    user_entry["date_created"]
                })

            return jsonify(response_data), 201