Esempio n. 1
0
    def unmarshal(self, value):
        if self.deprecated:
            warnings.warn(
                "{0} parameter is deprecated".format(self.name),
                DeprecationWarning,
            )

        if (self.location == ParameterLocation.QUERY and value == ""
                and not self.allow_empty_value):
            raise EmptyParameterValue(
                "Value of {0} parameter cannot be empty".format(self.name))

        if not self.schema:
            return value

        try:
            deserialized = self.deserialize(value)
        except (ValueError, AttributeError) as exc:
            raise InvalidParameterValue(str(exc))

        try:
            unmarshalled = self.schema.unmarshal(deserialized)
        except InvalidSchemaValue as exc:
            raise InvalidParameterValue(str(exc))

        try:
            return self.schema.validate(unmarshalled)
        except InvalidSchemaValue as exc:
            raise InvalidParameterValue(str(exc))
Esempio n. 2
0
    def unmarshal(self, value, custom_formatters=None, **kwargs):
        if self.deprecated:
            warnings.warn(
                "{0} parameter is deprecated".format(self.name),
                DeprecationWarning,
            )

        if (self.location == ParameterLocation.QUERY and value == ""
                and not self.allow_empty_value):
            raise EmptyParameterValue(self.name)

        if not self.schema:
            return value

        try:
            deserialized = self.deserialize(value)
        except (ValueError, AttributeError) as exc:
            raise InvalidParameterValue(self.name, exc)

        try:
            unmarshalled = self.schema.unmarshal(
                deserialized,
                custom_formatters=custom_formatters,
                strict=False,
            )
        except OpenAPISchemaError as exc:
            raise InvalidParameterValue(self.name, exc)

        try:
            return self.schema.validate(unmarshalled,
                                        custom_formatters=custom_formatters)
        except OpenAPISchemaError as exc:
            raise InvalidParameterValue(self.name, exc)
Esempio n. 3
0
    def cast(self, value):
        if self.deprecated:
            warnings.warn(
                "{0} parameter is deprecated".format(self.name),
                DeprecationWarning,
            )

        if (self.location == ParameterLocation.QUERY and value == ""
                and not self.allow_empty_value):
            raise EmptyParameterValue(self.name)

        if not self.schema:
            return value

        try:
            deserialized = self.deserialize(value)
        except (ValueError, AttributeError) as exc:
            raise InvalidParameterValue(self.name, exc)

        try:
            return self.schema.cast(deserialized)
        except CastError as exc:
            raise InvalidParameterValue(self.name, exc)