#[derive(Debug, Clone, PartialEq)]
pub enum MailApiV1 {
MailGroupCreate,
MailGroupGet(String),
MailGroupUpdate(String),
MailGroupDelete(String),
MailGroupList,
MailGroupPatch(String),
MailGroupAliasCreate(String),
MailGroupAliasDelete(String, String),
MailGroupAliasList(String),
MailGroupManagerBatchCreate(String),
MailGroupManagerBatchDelete(String),
MailGroupManagerList(String),
MailGroupMemberCreate(String),
MailGroupMemberDelete(String, String),
MailGroupMemberGet(String, String),
MailGroupMemberList(String),
MailGroupMemberBatchCreate(String),
MailGroupMemberBatchDelete(String),
MailGroupPermissionMemberCreate(String),
MailGroupPermissionMemberDelete(String, String),
MailGroupPermissionMemberGet(String, String),
MailGroupPermissionMemberList(String),
MailGroupPermissionMemberBatchCreate(String),
MailGroupPermissionMemberBatchDelete(String),
PublicMailboxCreate,
PublicMailboxGet(String),
PublicMailboxUpdate(String),
PublicMailboxDelete(String),
PublicMailboxList,
PublicMailboxPatch(String),
PublicMailboxRemoveToRecycleBin(String),
PublicMailboxAliasCreate(String),
PublicMailboxAliasDelete(String, String),
PublicMailboxAliasList(String),
PublicMailboxMemberCreate(String),
PublicMailboxMemberDelete(String, String),
PublicMailboxMemberGet(String, String),
PublicMailboxMemberList(String),
PublicMailboxMemberBatchCreate(String),
PublicMailboxMemberBatchDelete(String),
PublicMailboxMemberClear(String),
UserQuery,
UserMailboxDelete(String),
UserMailboxAliasCreate(String),
UserMailboxAliasDelete(String, String),
UserMailboxAliasList(String),
UserMailboxEventSubscribe(String),
UserMailboxEventUnsubscribe(String),
UserMailboxEventSubscription(String),
UserMailboxFolderCreate(String),
UserMailboxFolderDelete(String),
UserMailboxFolderList(String),
UserMailboxFolderPatch(String),
UserMailboxMailContactCreate(String),
UserMailboxMailContactDelete(String),
UserMailboxMailContactList(String),
UserMailboxMailContactPatch(String),
UserMailboxMessageGet(String),
UserMailboxMessageGetByCard(String),
UserMailboxMessageList(String),
UserMailboxMessageSend(String),
UserMailboxMessageAttachmentDownloadUrl(String),
UserMailboxRuleCreate(String),
UserMailboxRuleDelete(String),
UserMailboxRuleList(String),
UserMailboxRuleReorder(String),
UserMailboxRuleUpdate(String),
}
impl MailApiV1 {
pub fn to_url(&self) -> String {
match self {
MailApiV1::MailGroupCreate => "/open-apis/mail/v1/mailgroups".to_string(),
MailApiV1::MailGroupGet(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}", group_id)
}
MailApiV1::MailGroupUpdate(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}", group_id)
}
MailApiV1::MailGroupDelete(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}", group_id)
}
MailApiV1::MailGroupList => "/open-apis/mail/v1/mailgroups".to_string(),
MailApiV1::MailGroupPatch(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}", group_id)
}
MailApiV1::MailGroupAliasCreate(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}/aliases", group_id)
}
MailApiV1::MailGroupAliasDelete(group_id, alias_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/aliases/{}",
group_id, alias_id
)
}
MailApiV1::MailGroupAliasList(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}/aliases", group_id)
}
MailApiV1::MailGroupManagerBatchCreate(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/managers/batch_create",
group_id
)
}
MailApiV1::MailGroupManagerBatchDelete(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/managers/batch_delete",
group_id
)
}
MailApiV1::MailGroupManagerList(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}/managers", group_id)
}
MailApiV1::MailGroupMemberCreate(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}/members", group_id)
}
MailApiV1::MailGroupMemberDelete(group_id, member_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/members/{}",
group_id, member_id
)
}
MailApiV1::MailGroupMemberGet(group_id, member_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/members/{}",
group_id, member_id
)
}
MailApiV1::MailGroupMemberList(group_id) => {
format!("/open-apis/mail/v1/mailgroups/{}/members", group_id)
}
MailApiV1::MailGroupMemberBatchCreate(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/members/batch_create",
group_id
)
}
MailApiV1::MailGroupMemberBatchDelete(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/members/batch_delete",
group_id
)
}
MailApiV1::MailGroupPermissionMemberCreate(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members",
group_id
)
}
MailApiV1::MailGroupPermissionMemberDelete(group_id, perm_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members/{}",
group_id, perm_id
)
}
MailApiV1::MailGroupPermissionMemberGet(group_id, perm_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members/{}",
group_id, perm_id
)
}
MailApiV1::MailGroupPermissionMemberList(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members",
group_id
)
}
MailApiV1::MailGroupPermissionMemberBatchCreate(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members/batch_create",
group_id
)
}
MailApiV1::MailGroupPermissionMemberBatchDelete(group_id) => {
format!(
"/open-apis/mail/v1/mailgroups/{}/permission_members/batch_delete",
group_id
)
}
MailApiV1::PublicMailboxCreate => "/open-apis/mail/v1/public_mailboxes".to_string(),
MailApiV1::PublicMailboxGet(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}", mailbox_id)
}
MailApiV1::PublicMailboxUpdate(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}", mailbox_id)
}
MailApiV1::PublicMailboxDelete(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}", mailbox_id)
}
MailApiV1::PublicMailboxList => "/open-apis/mail/v1/public_mailboxes".to_string(),
MailApiV1::PublicMailboxPatch(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}", mailbox_id)
}
MailApiV1::PublicMailboxRemoveToRecycleBin(mailbox_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/remove_to_recycle_bin",
mailbox_id
)
}
MailApiV1::PublicMailboxAliasCreate(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}/aliases", mailbox_id)
}
MailApiV1::PublicMailboxAliasDelete(mailbox_id, alias_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/aliases/{}",
mailbox_id, alias_id
)
}
MailApiV1::PublicMailboxAliasList(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}/aliases", mailbox_id)
}
MailApiV1::PublicMailboxMemberCreate(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}/members", mailbox_id)
}
MailApiV1::PublicMailboxMemberDelete(mailbox_id, member_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/members/{}",
mailbox_id, member_id
)
}
MailApiV1::PublicMailboxMemberGet(mailbox_id, member_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/members/{}",
mailbox_id, member_id
)
}
MailApiV1::PublicMailboxMemberList(mailbox_id) => {
format!("/open-apis/mail/v1/public_mailboxes/{}/members", mailbox_id)
}
MailApiV1::PublicMailboxMemberBatchCreate(mailbox_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/members/batch_create",
mailbox_id
)
}
MailApiV1::PublicMailboxMemberBatchDelete(mailbox_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/members/batch_delete",
mailbox_id
)
}
MailApiV1::PublicMailboxMemberClear(mailbox_id) => {
format!(
"/open-apis/mail/v1/public_mailboxes/{}/members/clear",
mailbox_id
)
}
MailApiV1::UserQuery => "/open-apis/mail/v1/user".to_string(),
MailApiV1::UserMailboxDelete(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}", mailbox_id)
}
MailApiV1::UserMailboxAliasCreate(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/aliases", mailbox_id)
}
MailApiV1::UserMailboxAliasDelete(mailbox_id, alias_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/aliases/{}",
mailbox_id, alias_id
)
}
MailApiV1::UserMailboxAliasList(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/aliases", mailbox_id)
}
MailApiV1::UserMailboxEventSubscribe(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/event/subscribe",
mailbox_id
)
}
MailApiV1::UserMailboxEventUnsubscribe(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/event/unsubscribe",
mailbox_id
)
}
MailApiV1::UserMailboxEventSubscription(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/event/subscription",
mailbox_id
)
}
MailApiV1::UserMailboxFolderCreate(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/folder", mailbox_id)
}
MailApiV1::UserMailboxFolderDelete(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/folder", mailbox_id)
}
MailApiV1::UserMailboxFolderList(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/folder", mailbox_id)
}
MailApiV1::UserMailboxFolderPatch(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/folder", mailbox_id)
}
MailApiV1::UserMailboxMailContactCreate(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/mail_contact",
mailbox_id
)
}
MailApiV1::UserMailboxMailContactDelete(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/mail_contact",
mailbox_id
)
}
MailApiV1::UserMailboxMailContactList(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/mail_contact",
mailbox_id
)
}
MailApiV1::UserMailboxMailContactPatch(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/mail_contact",
mailbox_id
)
}
MailApiV1::UserMailboxMessageGet(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/message/get", mailbox_id)
}
MailApiV1::UserMailboxMessageGetByCard(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/message/get_by_card",
mailbox_id
)
}
MailApiV1::UserMailboxMessageList(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/message/list",
mailbox_id
)
}
MailApiV1::UserMailboxMessageSend(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/message/send",
mailbox_id
)
}
MailApiV1::UserMailboxMessageAttachmentDownloadUrl(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/message/attachment/download_url",
mailbox_id
)
}
MailApiV1::UserMailboxRuleCreate(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/rule", mailbox_id)
}
MailApiV1::UserMailboxRuleDelete(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/rule", mailbox_id)
}
MailApiV1::UserMailboxRuleList(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/rule", mailbox_id)
}
MailApiV1::UserMailboxRuleReorder(mailbox_id) => {
format!(
"/open-apis/mail/v1/user_mailbox/{}/rule/reorder",
mailbox_id
)
}
MailApiV1::UserMailboxRuleUpdate(mailbox_id) => {
format!("/open-apis/mail/v1/user_mailbox/{}/rule", mailbox_id)
}
}
}
}
#[cfg(test)]
#[allow(unused_imports)]
mod tests {
use super::*;
#[test]
fn test_mailapiv1_to_url_coverage() {
let urls = vec![
MailApiV1::MailGroupCreate.to_url(),
MailApiV1::MailGroupGet("id1".to_string()).to_url(),
MailApiV1::MailGroupUpdate("id1".to_string()).to_url(),
MailApiV1::MailGroupDelete("id1".to_string()).to_url(),
MailApiV1::MailGroupList.to_url(),
MailApiV1::MailGroupPatch("id1".to_string()).to_url(),
MailApiV1::MailGroupAliasCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupAliasDelete("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::MailGroupAliasList("id1".to_string()).to_url(),
MailApiV1::MailGroupManagerBatchCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupManagerBatchDelete("id1".to_string()).to_url(),
MailApiV1::MailGroupManagerList("id1".to_string()).to_url(),
MailApiV1::MailGroupMemberCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupMemberDelete("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::MailGroupMemberGet("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::MailGroupMemberList("id1".to_string()).to_url(),
MailApiV1::MailGroupMemberBatchCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupMemberBatchDelete("id1".to_string()).to_url(),
MailApiV1::MailGroupPermissionMemberCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupPermissionMemberDelete("id1".to_string(), "id2".to_string())
.to_url(),
MailApiV1::MailGroupPermissionMemberGet("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::MailGroupPermissionMemberList("id1".to_string()).to_url(),
MailApiV1::MailGroupPermissionMemberBatchCreate("id1".to_string()).to_url(),
MailApiV1::MailGroupPermissionMemberBatchDelete("id1".to_string()).to_url(),
MailApiV1::PublicMailboxCreate.to_url(),
MailApiV1::PublicMailboxGet("id1".to_string()).to_url(),
MailApiV1::PublicMailboxUpdate("id1".to_string()).to_url(),
MailApiV1::PublicMailboxDelete("id1".to_string()).to_url(),
MailApiV1::PublicMailboxList.to_url(),
MailApiV1::PublicMailboxPatch("id1".to_string()).to_url(),
MailApiV1::PublicMailboxRemoveToRecycleBin("id1".to_string()).to_url(),
MailApiV1::PublicMailboxAliasCreate("id1".to_string()).to_url(),
MailApiV1::PublicMailboxAliasDelete("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::PublicMailboxAliasList("id1".to_string()).to_url(),
MailApiV1::PublicMailboxMemberCreate("id1".to_string()).to_url(),
MailApiV1::PublicMailboxMemberDelete("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::PublicMailboxMemberGet("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::PublicMailboxMemberList("id1".to_string()).to_url(),
MailApiV1::PublicMailboxMemberBatchCreate("id1".to_string()).to_url(),
MailApiV1::PublicMailboxMemberBatchDelete("id1".to_string()).to_url(),
MailApiV1::PublicMailboxMemberClear("id1".to_string()).to_url(),
MailApiV1::UserQuery.to_url(),
MailApiV1::UserMailboxDelete("id1".to_string()).to_url(),
MailApiV1::UserMailboxAliasCreate("id1".to_string()).to_url(),
MailApiV1::UserMailboxAliasDelete("id1".to_string(), "id2".to_string()).to_url(),
MailApiV1::UserMailboxAliasList("id1".to_string()).to_url(),
MailApiV1::UserMailboxEventSubscribe("id1".to_string()).to_url(),
MailApiV1::UserMailboxEventUnsubscribe("id1".to_string()).to_url(),
MailApiV1::UserMailboxEventSubscription("id1".to_string()).to_url(),
MailApiV1::UserMailboxFolderCreate("id1".to_string()).to_url(),
MailApiV1::UserMailboxFolderDelete("id1".to_string()).to_url(),
MailApiV1::UserMailboxFolderList("id1".to_string()).to_url(),
MailApiV1::UserMailboxFolderPatch("id1".to_string()).to_url(),
MailApiV1::UserMailboxMailContactCreate("id1".to_string()).to_url(),
MailApiV1::UserMailboxMailContactDelete("id1".to_string()).to_url(),
MailApiV1::UserMailboxMailContactList("id1".to_string()).to_url(),
MailApiV1::UserMailboxMailContactPatch("id1".to_string()).to_url(),
MailApiV1::UserMailboxMessageGet("id1".to_string()).to_url(),
MailApiV1::UserMailboxMessageGetByCard("id1".to_string()).to_url(),
MailApiV1::UserMailboxMessageList("id1".to_string()).to_url(),
MailApiV1::UserMailboxMessageSend("id1".to_string()).to_url(),
MailApiV1::UserMailboxMessageAttachmentDownloadUrl("id1".to_string()).to_url(),
MailApiV1::UserMailboxRuleCreate("id1".to_string()).to_url(),
MailApiV1::UserMailboxRuleDelete("id1".to_string()).to_url(),
MailApiV1::UserMailboxRuleList("id1".to_string()).to_url(),
MailApiV1::UserMailboxRuleReorder("id1".to_string()).to_url(),
MailApiV1::UserMailboxRuleUpdate("id1".to_string()).to_url(),
];
assert!(urls.iter().all(|url| url.starts_with("/open-apis/")));
}
}