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)
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'])