def create(self, request): try: # Extract SDR document from the HTTP request data = json.loads(request.body) except: # The usage document is not valid, so the state cannot be changed return build_response(request, 400, 'The request does not contain a valid JSON object') # Validate usage information response = None try: sdr_manager = SDRManager() sdr_manager.validate_sdr(data) except PermissionDenied as e: response = build_response(request, 403, unicode(e)) except ValueError as e: response = build_response(request, 422, unicode(e)) except: response = build_response(request, 500, 'The SDR document could not be processed due to an unexpected error') usage_client = UsageClient() if response is not None: # The usage document is not valid, change its state to Rejected usage_client.update_usage_state('Rejected', data) else: # The usage document is valid, change its state to Guided usage_client.update_usage_state('Guided', data) response = build_response(request, 200, 'OK') # Update usage document state return response
def _parse_raw_accounting(self, usage): sdr_manager = SDRManager() sdrs = [] for usage_document in usage: sdr_values = sdr_manager.get_sdr_values(usage_document) sdr_values.update({'usage_id': usage_document['id']}) sdrs.append(sdr_values) return sdrs
def create(self, request): try: # Extract SDR document from the HTTP request data = json.loads(request.body) except: # The usage document is not valid, so the state cannot be changed return build_response( request, 400, 'The request does not contain a valid JSON object') # Validate usage information response = None sdr_manager = SDRManager() try: sdr_manager.validate_sdr(data) except PermissionDenied as e: response = build_response(request, 403, str(e)) except ValueError as e: response = build_response(request, 422, str(e)) except: response = build_response( request, 500, 'The SDR document could not be processed due to an unexpected error' ) usage_client = UsageClient() if response is not None: # The usage document is not valid, change its state to Rejected usage_client.update_usage_state(data['id'], 'Rejected') else: # The usage document is valid, change its state to Guided usage_client.update_usage_state(data['id'], 'Guided') sdr_manager.update_usage() response = build_response(request, 200, 'OK') # Update usage document state return response