def extract_auction_adapter(request, auction_id): db = request.registry.db doc = db.get(auction_id) if doc is None or doc.get('doc_type') != 'Auction': request.errors.add('url', 'auction_id', 'Not Found') request.errors.status = 404 raise error_handler(request) return request.auction_from_data(doc)
def auction_from_data(request, data, raise_error=True, create=True): procurementMethodType = data.get('procurementMethodType') if not procurementMethodType: pmts = get_procurement_method_types(request.registry, ('belowThreshold', )) procurementMethodType = pmts[0] if pmts else 'belowThreshold' model = request.registry.auction_procurementMethodTypes.get( procurementMethodType) if model is None and raise_error: request.errors.add('body', 'data', 'procurementMethodType is not implemented') request.errors.status = 415 raise error_handler(request) update_logging_context(request, {'auction_type': procurementMethodType}) if model is not None and create: model = model(data) return model