def post(self, request, **kwargs):

        name = request.POST.get('name', '')

        if name:
            bucketlist = Bucketlist(name=name,
                                    created_by=request.user.username,
                                    user_id=request.user.id)
            bucketlist.save()
            msg = "Action succesfully performed."
            messages.add_message(request, messages.SUCCESS, msg)
            return HttpResponseRedirect(
                reverse_lazy('mylist',
                             kwargs={
                                 'username': request.user.username,
                             }))

        else:
            msg = "It seems like you didn't add an item."
            messages.add_message(request, messages.INFO, msg)
            return HttpResponseRedirect(
                reverse_lazy('mylist',
                             kwargs={
                                 'username': request.user.username,
                             }))
Beispiel #2
0
def new_bucketlist():
    """
    Creates a new bucketlist.
    """
    try:
        # validates user key/value inputs using a try-catch block
        bucketlist = Bucketlist()
        sanitized = bucketlist.import_data(request.json)
        if sanitized == "Invalid":
            return jsonify({"Message": "The bucketlist must have a name"}), 400
    except ValidationError as e:
        return jsonify({"Message": str(e)}), 400

    # checks for duplicates before creating the new bucketlist
    duplicate = Bucketlist.query.filter_by(name=bucketlist.name,
                                           created_by=g.user.id).first()
    if not duplicate:
        bucketlist.created_by = g.user.id
        db.session.add(bucketlist)
        db.session.commit()
        return jsonify(
            {"Message": bucketlist.name.title() + " has been created"}), 201
    return jsonify({
        "Message":
        "A bucketlist with that name already exists. Please try again"
    }), 400
Beispiel #3
0
    def post(self):
        now = datetime.datetime.now()
        data = request.get_json()

        current_user = get_jwt_identity()

        bucketlist_exists = Bucketlist.query.filter_by(
            name=data.get('name'), created_by=current_user).first()

        if not bucketlist_exists:

            bucketlist = Bucketlist(name=data.get('name'),
                                    created_by=current_user,
                                    date_created=now)
            bucketlist.save()  # Save bucketlist name

            response = jsonify({
                'status': "Success",
                'message': "Bucketlist Created"
            })

            response.status_code = 201

        else:

            response = jsonify({
                'status': "Fail",
                'message': "Bucketlist already exists"
            })

            response.status_code = 409

        return make_response(response)
    def post(self, request):
        '''creates a bucketlist for a user'''

        # validate form
        form = CreateBucketlistForm(request.POST)

        if form.is_valid():
            bucketlist_name = form.cleaned_data['name']

            # create a new bucketlist
            new_bucketlist = Bucketlist(name=bucketlist_name,
                                        created_by=request.user)
            new_bucketlist.save()

            messages.add_message(request,
                                 messages.INFO,
                                 'Bucketlist successfully created.')
        else:
            # send back form errors as messages
            for error in form.errors:
                messages.add_message(request,
                                     messages.ERROR,
                                     form.errors[error])

        return HttpResponseRedirect(reverse('frontend:dashboard'))
Beispiel #5
0
    def post(self):
        """.. :quickref: Bucketlists Collection; Create a new bucket list.

        .. sourcecode:: http

          POST /bucketlists/1/ HTTP/1.1
          Host: localhost:5000
          Accept: application/json
          Authentication: <token>


        :reqheader Accept: application/json
        :reqheader Authentication: <token>

        :<json string name: bucketlist name


        :resheader Content-Type: application/json
        :status 201: bucketlist created
        :status 422: invalid parameters
        """

        token = request.headers.get('Authorization')
        if token:
            current_user = User.verify_auth_token(token)
        else:
            abort(400, message='Unauthorized Access!')
        if current_user:
            arguments = request.get_json(force=True)
            try:
                name = arguments['name']
            except:
                return {'message': 'Invalid parameter entered'}
            bucketlists = Bucketlist.query.filter_by(
                created_by=current_user.id)
            current_bucketlists = []

            if not name:
                # we return bad request since we require name
                return {'message': 'Missing required parameters.'}, 400
            for bucketlist in bucketlists:
                current_bucketlists.append(bucketlist.name)
            if name not in current_bucketlists:
                new_bucketlist = Bucketlist(name=name,
                                            created_by=current_user.id)
                new_bucketlist.save()

                return {'message': 'successfully added a new bucketlist'}
            return {'message': 'bucketlist already exists'}
        else:
            abort(400, message='Expired or invalid token')
    def post(self, request, **kwargs):

        name = request.POST.get('name', '')

        if name:
            bucketlist = Bucketlist(
                name=name, created_by=request.user.username,
                user_id=request.user.id)
            bucketlist.save()
            msg = "Action succesfully performed."
            messages.add_message(request, messages.SUCCESS, msg)
            return HttpResponseRedirect(reverse_lazy('mylist', kwargs={
                'username': request.user.username, }))

        else:
            msg = "It seems like you didn't add an item."
            messages.add_message(request, messages.INFO, msg)
            return HttpResponseRedirect(reverse_lazy('mylist', kwargs={
                'username': request.user.username, }))
Beispiel #7
0
 def post(self):  # noqa
     """
        End point for creating a bucketlist
        ---
        parameters:
          - in: formData
            name: title
            type: string
            description: The bucketlist title
            required: true
          - in: formData
            name: description
            description: Description of the bucketlist
            type: string
            required: true
          - in: header
            name: token
            type: string
            description: Access token
            required: true
        responses:
          201:
            description: Creates a new bucketlist
            schema:
              id: CreateBucketlist
              properties:
                title:
                  type: string
                  default: Travel
                Description:
                  type: string
                  description: Places to visit
                  default: Hawaii
         """
     parser = reqparse.RequestParser()
     parser.add_argument(
         "title",
         required=True,
         help="Please enter a bucketlist title.")
     parser.add_argument(
                         "description",
                         required=True,
                         help="Please enter a description")
     args = parser.parse_args()
     title, description = args["title"], args["description"]
     if title and description:
         bucketlist = Bucketlist(title=title,
                                 description=description,
                                 created_by=g.user.id)
         return add_bucketlist(bucketlist)
     else:
         return {"message": "ERROR! Title and/or"
                 " Description can not be empty"}, 400
Beispiel #8
0
    def setUp(self):
        """Fixture to create test database and set up test client."""
        self.app = app.test_client()
        db.create_all()
        user = User(username="******",
                    email="*****@*****.**",
                    password="******")

        bucketlist = Bucketlist(title="Travel",
                                description="Places I have to visit",
                                created_by=1)

        item = Item(name="Enjoy the beautiful beaches of Hawaii",
                    bucketlist_id=1)

        db.session.add(user)
        db.session.add(bucketlist)
        db.session.add(item)
        db.session.commit()
    def setUp(self):
        """Set up the test database and test user."""
        self.app = create_app(config_name="testing")
        self.client = self.app.test_client()
        self.app_context = self.app.app_context()
        self.app_context.push()
        db.create_all()

        user = User(username="******",
                    email="*****@*****.**",
                    password="******")
        bucketlist = Bucketlist(bucketlist_title="Visit Paris", creator_id=1)
        item = Item(item_name="The Eiffel Tower",
                    description="Wrought iron lattice tower in France",
                    bucketlist_id=1)

        db.session.add(user)
        db.session.add(bucketlist)
        db.session.add(item)
        db.session.commit()

        # set header
        self.auth_header = {'Authorization': user.generate_auth_token(user.id)}
        self.token = user.generate_auth_token(user.id)
Beispiel #10
0
    def setUp(self):
        """
        Add bucketlists and items directly to db to avoid using tokens 
        required for POST request.
        """
        app.config.from_object(TestingConfig)
        self.client = app.test_client()
        db.create_all()

        self.client.post("/auth/register",
                         data=json.dumps(
                             dict(username="******", password="******")),
                         content_type="application/json")

        response = self.client.post("/auth/login",
                                    data=json.dumps(
                                        dict(username="******",
                                             password="******")),
                                    content_type="application/json")
        response_msg = json.loads(response.data)
        self.token = response_msg["Token"]

        bucket = {"name": "testbucketlist"}
        test_bucket = Bucketlist()
        test_bucket.import_data(bucket)
        test_bucket.created_by = 1

        bucket2 = {"name": "testbucketlist2"}
        test_bucket2 = Bucketlist()
        test_bucket2.import_data(bucket2)
        test_bucket2.created_by = 1

        bucket3 = {"name": "testbucketlist3"}
        test_bucket3 = Bucketlist()
        test_bucket3.import_data(bucket3)
        test_bucket3.created_by = 2

        item = {"name": "testitem", "done": ""}
        test_item = BucketlistItem()
        test_item.import_data(item)
        test_item.bucket = 1
        test_item.created_by = 1

        db.session.add(test_bucket)
        db.session.add(test_bucket2)
        db.session.add(test_bucket3)
        db.session.add(test_item)
        db.session.commit()
Beispiel #11
0
 def setUp(self) -> None:
     """ Define test clients and other  test variables."""
     user = User.objects.create(username='******')
     self.name = "write world class code"
     # specify owner of a bucket list
     self.backetlist = Bucketlist(name=self.name, owner=user)