def put(self,id): data = _request_parser.parse_args() #Validacao das condicoes de entrada request = RequestModel.find_by_id(id) if request: request.name = data['name'] request.address = data['address'] request.author = data['author'] request.accepted = data['accepted'] request.done = data['done'] else: return {'message': 'Request not found'}, 404 request.save_to_db() return request.json()
def post(self): _parser = reqparse.RequestParser() _parser.add_argument('requestID',type=str,required=True,help="This field cannot be blank.") _parser.add_argument('delivererID',type=str,required=True,help="This field cannot be blank.") _parser.add_argument('itemID',type=str,required=True,help="This field cannot be blank.") _parser.add_argument('quantity',type=int,required=True,help="This field cannot be blank.") _parser.add_argument('collectionDateTime') _parser.add_argument('deliveryDateTime') _parser.add_argument('dateTime') _parser.add_argument('itemName',type=str,required=True,help="This field cannot be blank.") data = _parser.parse_args() request = RequestModel.find_by_id(data['requestID']) if not request: return {'message': 'Request Not Found'}, 404 deliverer = UserModel.find_by_id(data['delivererID']) if not deliverer: return {'message': 'Deliverer not found'}, 404 item = ItemModel.find_by_id(data['itemID']) if not item: return {'message': 'Item not found'}, 404 if data['quantity'] <= 0: return {'message' : 'Invalied quantity selected'}, 400 if request.quantity <= 0: return {'message', 'No more items requested'}, 400 if data['quantity'] > request.quantity: return {'message' : 'Quantity selected is more than requested'}, 400 if item.quantity <= 0: return {'message': 'No more items to be donated'}, 400 if data['quantity'] > item.quantity: return {'message' : 'Quantity selected is more than donated'}, 400 collectionDateTime = datetime.strptime(data['collectionDateTime'], '%Y-%m-%dT%H:%M:%S.%fZ') deliveryDateTime = datetime.strptime(data['deliveryDateTime'], '%Y-%m-%dT%H:%M:%S.%fZ') dateTime = datetime.strptime(data['dateTime'], '%Y-%m-%dT%H:%M:%S.%fZ') if (deliveryDateTime <= collectionDateTime): return {'message' : 'Delivery time should be later than the collection time'}, 400 if (collectionDateTime <= dateTime): return {'message' : 'Collection time should be later than the current time'}, 400 if (deliveryDateTime <= dateTime): return {'message' : 'Collection time should be later than the current time'}, 400 confirmationCode = "" for i in range(6): confirmationCode += str(randint(1,9)) delivery = DeliveryModel(requestID=data['requestID'],delivererID=data['delivererID'],itemID=data['itemID'],dateTime=dateTime,confirmationCode=confirmationCode,quantity=data['quantity'],collectionDateTime=collectionDateTime,deliveryDateTime=deliveryDateTime, itemName=data['itemName']) delivery.save_to_db() item.update_quantity(item.quantity - data['quantity']) request.update_quantity(request.quantity - data['quantity']) return {"message": "Delivery details saved successfully"}, 201
def delete(cls): _parser = reqparse.RequestParser() _parser.add_argument('id', type=str, required=True, help="This field cannot be blank.") data = _parser.parse_args() userID = get_jwt_identity() request = RequestModel.find_by_id(data['id']) if not request: return {'message': 'Request Not Found'}, 404 if request.userID != userID: return {'message': 'Invalid User'}, 400 if (len(request.deliveries) > 0): return { 'message': 'This request has deliveries associated with it and hence, cannot be deleted' }, 400 request.delete_from_db() return {'message': 'Request deleted.'}, 200
def get(cls, requestID: str): request = RequestModel.find_by_id(requestID) if not request: return {'message': 'Request Not Found'}, 404 return {'request': request.json()}, 200
def delete(self, id): request = RequestModel.find_by_id(id) if request: request.delete_from_db() return {'message': 'Request deleted'}
def get(self, id): request = RequestModel.find_by_id(id) if request: return request.json() return {'message': 'request not found'}, 404