示例#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'])