def on_request_objects(self, sender, message):
        """React to request-objects signal by queuing a request

        Args:
            sender (object): Sender of the signal
            message (dict): Contains keys
                type -- object type as defined in OBJECT_TYPES
                id -- 32 byte object ID
                author_id -- (optional) author of the request
                recipient_id -- (optional) recipient of the request
        """
        try:
            object_type = message["type"]
            object_id = message["id"]
        except KeyError, e:
            self.logger.warning("Missing request parameter '{}'".format(e))
            return

        session = create_session()

        if "author_id" in message:
            author = self.electrical.get_persona(message["author_id"])
        else:
            author = None

        if "recipient_id" in message:
            recipient = self.electrical.get_persona(message["recipient_id"])
        else:
            recipient = None

        try:
            self.request_object(object_type, object_id, author, recipient, session)
        except:
            session.rollback()
            raise
        finally:
            session.flush()
dataset/ETHPy150Open ciex/souma/synapse/__init__.py/Synapse.on_request_objects/original