MessageMiddleware
Features#
Message middleware plug -in for platform introduction message middle parts(Such as Artemis,KAFKA etc.)Communication with a third -party system(If the notification data)
Implementation#
When developing a message in the middleware plug -in,Only inherit the message of the message intercding and complete the data writing process,The platform has provided message storage model(Scalable),And provide message storage methods in the base class:
Foundation definition#
        
arkid.core.extension.message.MessageExtension            (Extension)
        
#
    Source code in arkid/core/extension/message.py
          class MessageExtension(Extension):
    TYPE = "message"
    @property
    def type(self):
        return MessageExtension.TYPE
    def load(self):
        super().load()
    def save_message(self,tenant:Tenant,user:User,source:TenantExtensionConfig,title:str,content:str,**kwargs):
        """保存消息
        Args:
            tenant (Tenant): 租户
            user (User): 用户
            source (TenantExtensionConfig): 来源
            title (str): 标题
            content (str): 内容
        """
        try:
            message = Message(
                tenant=tenant,
                user=user,
                source=source,
                title=title,
                content=content
            )
            message.save()
        except Exception as err:
            logger.error(err)
            return False, ErrorCode.MESSAGE_SAVE_FAILED
        return True,None
load(self)
#
    
  
save_message(self, tenant, user, source, title, content, **kwargs)
#
    保存消息
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| tenant | Tenant | 租户 | required | 
| user | User | 用户 | required | 
| source | TenantExtensionConfig | 来源 | required | 
| title | str | 标题 | required | 
| content | str | 内容 | required | 
Source code in arkid/core/extension/message.py
          def save_message(self,tenant:Tenant,user:User,source:TenantExtensionConfig,title:str,content:str,**kwargs):
    """保存消息
    Args:
        tenant (Tenant): 租户
        user (User): 用户
        source (TenantExtensionConfig): 来源
        title (str): 标题
        content (str): 内容
    """
    try:
        message = Message(
            tenant=tenant,
            user=user,
            source=source,
            title=title,
            content=content
        )
        message.save()
    except Exception as err:
        logger.error(err)
        return False, ErrorCode.MESSAGE_SAVE_FAILED
    return True,None