Пример #1
0
    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
Пример #2
0
    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 _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
Пример #4
0
    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