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, }))
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
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'))
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, }))
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
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)
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()
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)