def create(self, request):
        obj = self._schema_draft().loads(request.body)

        if isinstance(obj.destination, types.SqsDestination):
            dest = obj.destination
            message = (
                "A test message could not be delivered to this destination: "
                "SQS %r in %r for %r. "
                "Please make sure your destination is correctly configured."
            ) % (dest.queue_url, dest.region, dest.access_key)
            error = types.ErrorResponse(
                status_code=400,
                message=message,
                errors=[types.InvalidInputError(message=message)],
            )
            error_data = schemas.ErrorResponseSchema().dumps(error).encode("utf-8")
            return create_response(request, content=error_data, status_code=400)

        data = self.model.add(obj)
        return create_response(request, json=data)
Example #2
0
 def post_load(self, data):
     del data["code"]
     return types.InvalidInputError(**data)