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()
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
 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