def delete(self, id, item_id): current_user = get_jwt_identity() bucketlist_item = BucketlistItem.get_bucketlist_items( id, item_id, current_user) if bucketlist_item: BucketlistItem.delete(bucketlist_item) response = jsonify({}) response.status_code = 204 # Status 204 does not need a message body else: response = jsonify({ "status": "Fail", "message": "Bucketlist item cannot be deleted as it does not exist" }) response.status_code = 404 return make_response(response)
def delete(self, id): current_user = get_jwt_identity() if id: bucketlist = Bucketlist.query.filter_by( id=id, created_by=current_user).first() if bucketlist: response = jsonify({ "status": "Success", "message": "Bucketlist {} deleted".format(bucketlist.id) }) response.status_code = 200 bucketlist.delete() else: response = jsonify({ "status": "Fail", "message": "Bucketlist does not exist" }) response.status_code = 404 return make_response(response)
def put(self, id=None): current_user = get_jwt_identity() if id: bucketlist = Bucketlist.query.filter_by( id=id, created_by=current_user).first() data = request.get_json() if bucketlist: bucketlist.name = data.get("name") bucketlist.save() response = jsonify({ "status": "Success", "message": "Bucketlist successfully updated" }) response.status_code = 200 else: response = jsonify({ 'status': "Fail", 'message': "Bucketlist name does not exist" }) response.status_code = 404 return make_response(response)
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 put(self, id, item_id): data = request.get_json() current_user = get_jwt_identity() bucketlist_item = BucketlistItem.get_bucketlist_items( id, item_id, current_user) if bucketlist_item: bucketlist_item.item_name = data.get('item_name') if data.get('done') == 'true': bucketlist_item.done = True bucketlist_item.date_modified = datetime.datetime.now() database.session.commit() # update new changes response = jsonify({ "status": "Success", "message": "Bucketlist item successfully updated" }) response.status_code = 200 else: response = jsonify({ "status": "Fail", "message": "Bucketlist item does not exist" }) response.status_code = 404 return make_response(response)
def get(self, **kwargs): start = request.args.get('start') limit = request.args.get('limit') query = request.args.get('q') current_user = get_jwt_identity() if kwargs.get('id') is not None: bucketlist = Bucketlist.query.filter_by( id=kwargs['id'], created_by=current_user).first() if not bucketlist: response = jsonify({ 'status': 'Fail', 'message': 'Bucketlist Does Not Exist' }) response.status_code = 404 else: response = jsonify({ 'id': bucketlist.id, 'name': bucketlist.name }) response.status_code = 200 else: if start is None: start = 1 if limit is None: limit = 5 search = get_paginated_list('/v1/api/bucketlists/', 'bucketlist', query, current_user, '', int(start), int(limit)) final_list = [] try: for bucketlist in search['results']: result = {'id': bucketlist.id, 'name': bucketlist.name} final_list.append(result) response = jsonify({ "previous": search['previous'], "next": search['next'], "results": final_list }) response.status_code = 200 except: response = jsonify({ "status": "Fail", "message": "No Bucketlist matching your query was found" }) response.status_code = 404 return make_response(response)
def get(self, **kwargs): start = request.args.get('start') limit = request.args.get('limit') query = request.args.get('q') current_user = get_jwt_identity() if kwargs.get('id') is not None and kwargs.get('item_id') is not None: buckelist_item = BucketlistItem.get_bucketlist_items( kwargs['id'], kwargs['item_id'], current_user) if buckelist_item: response = jsonify({ 'item_name': buckelist_item.item_name, 'date_created': buckelist_item.date_created, 'date_modified': buckelist_item.date_modified, 'done': buckelist_item.done, 'complete_by': buckelist_item.complete_by, 'bucketlist_id': buckelist_item.bucketlist_id }) response.status_code = 200 else: response = jsonify({ "status": "Fail", "message": "That bucketlist item does not exist in bucketlist" }) response.status_code = 404 elif kwargs.get('id') is not None: if start is None: start = 1 if limit is None: limit = 5 search = get_paginated_list( '/v1/api/bucketlists/' + str(kwargs['id']) + '/items/', 'bucketlist_item', query, current_user, kwargs['id'], int(start), int(limit)) try: all_items = [] for buckelist_item in search['results']: item_response = { 'item_name': buckelist_item.item_name, 'date_created': buckelist_item.date_created, 'date_modified': buckelist_item.date_modified, 'done': buckelist_item.done, 'complete_by': buckelist_item.complete_by, 'bucketlist_id': buckelist_item.bucketlist_id } all_items.append(item_response) response = jsonify({ "previous": search['previous'], "next": search['next'], "results": all_items }) response.status_code = 200 except: response = jsonify({ "status": "Fail", "message": "No bucketlist item matching your query in exists" }) response.status_code = 404 return make_response(response)