code: def process_complaint(message, notification):
      
      mail = message['mail']
      complaint = message['complaint']
  
      if 'arrivalDate' in complaint:
          arrival_date = clean_time(complaint['arrivalDate'])
      else:
          arrival_date = None
  
      complaints = []
      for recipient in complaint['complainedRecipients']:
          # Create each Complaint. Save in a list for reference later.
          complaints += [Complaint.objects.create(
              sns_topic=notification['TopicArn'],
              sns_messageid=notification['MessageId'],
              mail_timestamp=clean_time(mail['timestamp']),
              mail_id=mail['messageId'],
              mail_from=mail['source'],
              address=recipient['emailAddress'],
              feedback_id=complaint['feedbackId'],
              feedback_timestamp=clean_time(complaint['timestamp']),
              useragent=complaint.get('userAgent'),
              feedback_type=complaint.get('complaintFeedbackType'),
              arrival_date=arrival_date
          )]
  
      # Send signals for each complaint.
      for complaint in complaints:
          signals.feedback.send(
              sender=Complaint,
              instance=complaint,
              message=message,
              notification=notification
          )
  
      logger.info('Logged %s Complaint(s)', str(len(complaints)))
  
      return HttpResponse('Complaint Processed')
docs: Function to process a complaint notification