示例#1
0
def create_bid(request):
    json_bid = json.loads(request.body.decode('utf-8'))
    bid_validator = BidValidator(json_bid)
    if not bid_validator.is_valid():
        logger.debug('bid is not valid : %s' % bid_validator.error_message)
        return HttpBadRequest(bid_validator.error_code, bid_validator.error_message)

    bid = bid_validator.get_bid_object(request.user)
    new_bid = models.Bid(**bid)
    new_bid.save()
    new_bid_id = new_bid.id
    return HttpCreated(json.dumps({'bid_id': new_bid_id}), location='/api/bids/%d/' % new_bid_id)
示例#2
0
def update_bid(request, bid_id):
    bids = models.Bid.objects.filter(id=bid_id)
    new_bid = json.loads(request.body.decode('utf-8'))
    if bids and new_bid:
        bid_creator = bids[0].creator
        bid_validator = BidValidator(new_bid)
        if request.user == bid_creator or request.user.is_staff:
            if bid_validator.is_valid():
                updated_bid = bid_validator.get_bid_object(bid_creator)
                bids.update(**updated_bid)
                return HttpResponse(json.dumps({'bid_id': bids[0].id}), content_type='application/json')
        return HttpBadRequest(10666, bid_validator.error_message)
    return HttpBadRequest(10666, error_codes['10666'])
示例#3
0
 def test_get_bid_object_sent_with_keys_none_value(self):
     bid_validated = BidValidator({
         'title': "Chaise",
         'description': "Un siège, un dossier, 4 pieds",
         'type': 'Offer',
         'category': None,
         'localization': None,
         'association': None,
         "begin": constants.TODAY_ISO,
         "end": constants.TOMORROW_ISO,
         "quantity": "",
         "real_author": "titi"}
     )
     self.assertTrue(bid_validated.get_bid_object(self.creator))
示例#4
0
 def test_get_bid_object_sent_with_keys_none_value(self):
     bid_validated = BidValidator({
         'title': "Chaise",
         'description': "Un siège, un dossier, 4 pieds",
         'type': 'Offer',
         'category': None,
         'localization': None,
         'association': None,
         "begin": constants.TODAY_ISO,
         "end": constants.TOMORROW_ISO,
         "quantity": "",
         "real_author": "titi"
     })
     self.assertTrue(bid_validated.get_bid_object(self.creator))