use async_trait::async_trait;
use wx_rust_common::error::WxErrorException;
use crate::bean::ApplyPrivacyInterface;
use crate::bean::ApplyPrivacyInterfaceResult;
use crate::bean::GetPrivacyInterfaceResult;
use crate::bean::GetPrivacySettingResult;
use crate::bean::SetPrivacySetting;
use crate::bean::UploadPrivacyFileResult;
#[async_trait]
pub trait WxOpenMaPrivacyService: Send + Sync {
async fn get_privacy_setting(
&self,
privacy_ver: Option<i32>,
) -> Result<GetPrivacySettingResult, WxErrorException>;
async fn set_privacy_setting(&self, dto: &SetPrivacySetting) -> Result<(), WxErrorException>;
async fn upload_privacy_file(
&self,
_content: &str,
) -> Result<UploadPrivacyFileResult, WxErrorException> {
Err(WxErrorException::from_code(
5003,
"暂未实现用户隐私指引内容上传",
))
}
async fn get_privacy_interface(&self) -> Result<GetPrivacyInterfaceResult, WxErrorException>;
async fn apply_privacy_interface(
&self,
dto: &ApplyPrivacyInterface,
) -> Result<ApplyPrivacyInterfaceResult, WxErrorException>;
}