Merge pull request #1283 from terrycain/fix_1276
Fixes #1276 SNS Subject validation
This commit is contained in:
commit
462eceae6f
3 changed files with 42 additions and 2 deletions
|
|
@ -256,7 +256,10 @@ class SNSBackend(BaseBackend):
|
|||
else:
|
||||
return self._get_values_nexttoken(self.subscriptions, next_token)
|
||||
|
||||
def publish(self, arn, message):
|
||||
def publish(self, arn, message, subject=None):
|
||||
if subject is not None and len(subject) >= 100:
|
||||
raise ValueError('Subject must be less than 100 characters')
|
||||
|
||||
try:
|
||||
topic = self.get_topic(arn)
|
||||
message_id = topic.publish(message)
|
||||
|
|
|
|||
|
|
@ -239,6 +239,8 @@ class SNSResponse(BaseResponse):
|
|||
target_arn = self._get_param('TargetArn')
|
||||
topic_arn = self._get_param('TopicArn')
|
||||
phone_number = self._get_param('PhoneNumber')
|
||||
subject = self._get_param('Subject')
|
||||
|
||||
if phone_number is not None:
|
||||
# Check phone is correct syntax (e164)
|
||||
if not is_e164(phone_number):
|
||||
|
|
@ -261,7 +263,12 @@ class SNSResponse(BaseResponse):
|
|||
arn = topic_arn
|
||||
|
||||
message = self._get_param('Message')
|
||||
message_id = self.backend.publish(arn, message)
|
||||
|
||||
try:
|
||||
message_id = self.backend.publish(arn, message, subject=subject)
|
||||
except ValueError as err:
|
||||
error_response = self._error('InvalidParameter', str(err))
|
||||
return error_response, dict(status=400)
|
||||
|
||||
if self.request_json:
|
||||
return json.dumps({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue