def get(self):
        if not WhiteTokenModel.is_jti_whitelisted(get_raw_jwt()["jti"]):
            return {'message': 'Not logged in'}, 205
        try:
            print("Starting", flush=True)
            current_user = get_jwt_identity()
            userid = request.args.get('userid')
            tripid = request.args.get('tripid')
            print("Got data", flush=True)

            # If a tripid is provided, it will return just that trip
            if (tripid):
                print("tripid was provided", flush=True)
                trip = Trip.find_by_tid(int(tripid))
                print("Found trip", flush=True)
                # Making sure that the user asking for the trip has access to it, either because the user owns it, or is friends with the owner
                isFriends = Friends.find_by_uid_and_fid(
                    current_user, trip.user_id)
                if (trip.user_id != current_user and isFriends == None):
                    print("No access", flush=True)
                    return {
                        "message": "You do not have access to that trip"
                    }, 203
                elif (isFriends.friend_status == "accepted"
                      or trip.user_id == current_user):
                    print("Returning", flush=True)
                    return {
                        "message":
                        "The trip with id {} was found".format(tripid),
                        "trips": [trip.trip_json],
                        "tid": trip.trip_id,
                        "username": User.find_by_uid(trip.user_id).user_name
                    }, 200

            if (not userid):
                userId = current_user
            else:
                userId = userid

            if (current_user == userId
                    or Friends.find_by_uid_and_fid(current_user, userId)):
                all_trips = Trip.find_all_public_trips(userId)
                return {
                    "message":
                    "The trips of user {} was found".format(
                        User.find_by_uid(userId).user_name),
                    "trips":
                    json.dumps(all_trips)
                }, 200
            else:
                return {
                    "message":
                    "You are not friends with the requested user, therefore you cannot get their trips"
                }, 203

        except Exception as error:
            return {
                "message": "Something went wrong on the server",
                "error": str(error)
            }, 500
    def post(self):
        if not WhiteTokenModel.is_jti_whitelisted(get_raw_jwt()["jti"]):
            return {'message': 'Not logged in'}, 205

        current_user = get_jwt_identity()
        data = friend_edit_parser.parse_args()

        if not data["friend_name"]:
            return {'message': 'Friend name is required'}, 203

        friend_user = User.find_by_username(data["friend_name"])
        if friend_user == None:
            return {"message": "Friends user object not found"}, 204

        if not data["status"]:
            return {'message': 'Status is required'}, 203

        try:
            if data["status"] == "send":
                friend_object = Friends.find_by_uid_and_fid(
                    current_user, friend_user.user_id)
                if friend_object != None:
                    return {"message": "Error: Already on list"}, 203
                friends_friend_object = Friends.find_by_uid_and_fid(
                    friend_user.user_id, current_user)
                if friends_friend_object != None:
                    return {"message": "Error: Already on friends list"}, 203

                if friend_user.user_id == current_user:
                    return {
                        "message": "Error: Can't send a request to yourself"
                    }, 203

                own_friend_entry = Friends(user_id=current_user,
                                           friend_id=friend_user.user_id,
                                           friend_status="sent")
                friends_friend_entry = Friends(user_id=friend_user.user_id,
                                               friend_id=current_user,
                                               friend_status="received")
                own_friend_entry.save_to_db()
                friends_friend_entry.save_to_db()
                return {'message': "Friend request sent."}, 201

            if data["status"] == "accept":
                friend_object = Friends.find_by_uid_and_fid(
                    current_user, friend_user.user_id)
                if friend_object == None:
                    return {"message": "Friend object not found"}, 204
                friends_friend_object = Friends.find_by_uid_and_fid(
                    friend_user.user_id, current_user)
                if friends_friend_object == None:
                    return {"message": "Friends friend object not found"}, 204

                if friend_object.friend_status != "received" or friends_friend_object.friend_status != "sent":
                    return {
                        "message": "Can't accept because there is no request."
                    }, 203

                friend_object.friend_status = "accepted"
                friends_friend_object.friend_status = "accepted"

                friend_object.commit()
                friends_friend_object.commit()

                return {'message': "Friend request accepted."}, 201

            if data["status"] == "delete":
                friend_object = Friends.find_by_uid_and_fid(
                    current_user, friend_user.user_id)
                if friend_object == None:
                    return {"message": "Friend object not found"}, 204
                friends_friend_object = Friends.find_by_uid_and_fid(
                    friend_user.user_id, current_user)
                if friends_friend_object == None:
                    return {"message": "Friends friend object not found"}, 204

                friend_object.delete_from_db()
                friends_friend_object.delete_from_db()

                return {
                    'message':
                    'Friend entry for friend {} was deleted'.format(
                        friend_user.user_name),
                }, 201

            return {'message': "Invalid status."}, 201
        except Exception as err:
            return {'message': 'Something went wrong', "error": str(err)}, 500