#[derive(Debug, Clone, PartialEq)]
pub enum BaseApiV2 {
RoleCreate(String),
RoleUpdate(String, String),
RoleList(String),
}
impl BaseApiV2 {
pub fn to_url(&self) -> String {
match self {
BaseApiV2::RoleCreate(app_token) => {
format!("/open-apis/base/v2/apps/{app_token}/roles")
}
BaseApiV2::RoleUpdate(app_token, role_id) => {
format!("/open-apis/base/v2/apps/{app_token}/roles/{role_id}")
}
BaseApiV2::RoleList(app_token) => {
format!("/open-apis/base/v2/apps/{app_token}/roles")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum BitableApiV1 {
AppCreate,
AppCopy(String),
AppGet(String),
AppUpdate(String),
DashboardList(String),
DashboardCopy(String, String),
BlockWorkflowList(String),
WorkflowList(String),
WorkflowUpdate(String, String),
TableCreate(String),
TableBatchCreate(String),
TableUpdate(String, String),
TableDelete(String, String),
TableBatchDelete(String),
TableGet(String, String),
TableList(String),
TablePatch(String, String),
FieldCreate(String, String),
FieldGroupCreate(String, String),
FieldUpdate(String, String, String),
FieldDelete(String, String, String),
FieldList(String, String),
ViewCreate(String, String),
ViewUpdate(String, String, String),
ViewDelete(String, String, String),
ViewGet(String, String, String),
ViewList(String, String),
ViewPatch(String, String, String),
RecordCreate(String, String),
RecordBatchCreate(String, String),
RecordGet(String, String, String),
RecordBatchGet(String, String),
RecordUpdate(String, String, String),
RecordBatchUpdate(String, String),
RecordDelete(String, String, String),
RecordBatchDelete(String, String),
RecordList(String, String),
RecordSearch(String, String),
FormGet(String, String, String),
FormPatch(String, String, String),
FormUpgrade(String, String, String),
FormFieldList(String, String, String),
FormFieldPatch(String, String, String, String),
RoleCreate(String),
RoleUpdate(String, String),
RoleDelete(String, String),
RoleList(String),
RoleMemberCreate(String, String),
RoleMemberBatchCreate(String, String),
RoleMemberDelete(String, String, String),
RoleMemberBatchDelete(String, String),
RoleMemberList(String, String),
}
impl BitableApiV1 {
pub fn to_url(&self) -> String {
match self {
BitableApiV1::AppCreate => "/open-apis/bitable/v1/apps".to_string(),
BitableApiV1::AppCopy(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/copy")
}
BitableApiV1::AppGet(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}")
}
BitableApiV1::AppUpdate(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}")
}
BitableApiV1::DashboardList(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/dashboards")
}
BitableApiV1::DashboardCopy(app_token, block_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/dashboards/{block_id}/copy")
}
BitableApiV1::BlockWorkflowList(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/block_workflows")
}
BitableApiV1::WorkflowList(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/workflows")
}
BitableApiV1::WorkflowUpdate(app_token, workflow_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/workflows/{workflow_id}")
}
BitableApiV1::TableCreate(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables")
}
BitableApiV1::TableBatchCreate(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/batch_create")
}
BitableApiV1::TableUpdate(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}")
}
BitableApiV1::TableDelete(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}")
}
BitableApiV1::TableBatchDelete(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/batch_delete")
}
BitableApiV1::TableGet(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}")
}
BitableApiV1::TableList(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables")
}
BitableApiV1::TablePatch(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}")
}
BitableApiV1::FieldCreate(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields")
}
BitableApiV1::FieldGroupCreate(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/field_groups")
}
BitableApiV1::FieldUpdate(app_token, table_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}"
)
}
BitableApiV1::FieldDelete(app_token, table_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}"
)
}
BitableApiV1::FieldList(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields")
}
BitableApiV1::ViewCreate(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views")
}
BitableApiV1::ViewUpdate(app_token, table_id, view_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}")
}
BitableApiV1::ViewDelete(app_token, table_id, view_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}")
}
BitableApiV1::ViewGet(app_token, table_id, view_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}")
}
BitableApiV1::ViewList(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views")
}
BitableApiV1::ViewPatch(app_token, table_id, view_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}")
}
BitableApiV1::RecordCreate(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records")
}
BitableApiV1::RecordBatchCreate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_create"
)
}
BitableApiV1::RecordGet(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}"
)
}
BitableApiV1::RecordBatchGet(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_get"
)
}
BitableApiV1::RecordUpdate(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}"
)
}
BitableApiV1::RecordBatchUpdate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_update"
)
}
BitableApiV1::RecordDelete(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}"
)
}
BitableApiV1::RecordBatchDelete(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_delete"
)
}
BitableApiV1::RecordList(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records")
}
BitableApiV1::RecordSearch(app_token, table_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/search")
}
BitableApiV1::FormGet(app_token, table_id, form_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}")
}
BitableApiV1::FormPatch(app_token, table_id, form_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}")
}
BitableApiV1::FormUpgrade(app_token, table_id, form_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}/upgrade"
)
}
BitableApiV1::FormFieldList(app_token, table_id, form_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}/fields"
)
}
BitableApiV1::FormFieldPatch(app_token, table_id, form_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/forms/{form_id}/fields/{field_id}"
)
}
BitableApiV1::RoleCreate(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles")
}
BitableApiV1::RoleUpdate(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}")
}
BitableApiV1::RoleDelete(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}")
}
BitableApiV1::RoleList(app_token) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles")
}
BitableApiV1::RoleMemberCreate(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members")
}
BitableApiV1::RoleMemberBatchCreate(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_create"
)
}
BitableApiV1::RoleMemberDelete(app_token, role_id, member_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/{member_id}"
)
}
BitableApiV1::RoleMemberBatchDelete(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_delete"
)
}
BitableApiV1::RoleMemberList(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum MinutesApiV1 {
Get(String),
Subscription,
Unsubscription,
MediaGet(String),
TranscriptGet(String),
StatisticsGet(String),
}
impl MinutesApiV1 {
pub fn to_url(&self) -> String {
match self {
MinutesApiV1::Get(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{minute_token}")
}
MinutesApiV1::Subscription => "/open-apis/minutes/v1/minutes/subscription".to_string(),
MinutesApiV1::Unsubscription => {
"/open-apis/minutes/v1/minutes/unsubscription".to_string()
}
MinutesApiV1::MediaGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{minute_token}/media")
}
MinutesApiV1::TranscriptGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{minute_token}/transcript")
}
MinutesApiV1::StatisticsGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{minute_token}/statistics")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum WikiApiV1 {
NodeSearch,
}
impl WikiApiV1 {
pub fn to_url(&self) -> String {
match self {
WikiApiV1::NodeSearch => "/open-apis/wiki/v1/nodes/search".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum DocsApiV1 {
ContentGet,
}
impl DocsApiV1 {
pub fn to_url(&self) -> String {
match self {
DocsApiV1::ContentGet => "/open-apis/docs/v1/content".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum DocxApiV1 {
ChatAnnouncementGet(String),
ChatAnnouncementBlockList(String),
ChatAnnouncementBlockChildrenCreate(String, String),
ChatAnnouncementBlockBatchUpdate(String),
ChatAnnouncementBlockGet(String, String),
ChatAnnouncementBlockChildrenGet(String, String),
ChatAnnouncementBlockChildrenBatchDelete(String, String),
DocumentCreate,
DocumentGet(String),
DocumentRawContent(String),
DocumentBlockList(String),
DocumentBlockChildrenCreate(String, String),
DocumentBlockDescendantCreate(String, String),
DocumentBlockPatch(String, String),
DocumentBlockGet(String, String),
DocumentBlockBatchUpdate(String),
DocumentBlockChildrenGet(String, String),
DocumentBlockChildrenBatchDelete(String, String),
DocumentConvert,
}
impl DocxApiV1 {
pub fn to_url(&self) -> String {
match self {
DocxApiV1::ChatAnnouncementGet(chat_id) => {
format!("/open-apis/docx/v1/chats/{chat_id}/announcement")
}
DocxApiV1::ChatAnnouncementBlockList(chat_id) => {
format!("/open-apis/docx/v1/chats/{chat_id}/announcement/blocks")
}
DocxApiV1::ChatAnnouncementBlockChildrenCreate(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{chat_id}/announcement/blocks/{block_id}/children"
)
}
DocxApiV1::ChatAnnouncementBlockBatchUpdate(chat_id) => {
format!("/open-apis/docx/v1/chats/{chat_id}/announcement/blocks/batch_update")
}
DocxApiV1::ChatAnnouncementBlockGet(chat_id, block_id) => {
format!("/open-apis/docx/v1/chats/{chat_id}/announcement/blocks/{block_id}")
}
DocxApiV1::ChatAnnouncementBlockChildrenGet(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{chat_id}/announcement/blocks/{block_id}/children"
)
}
DocxApiV1::ChatAnnouncementBlockChildrenBatchDelete(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{chat_id}/announcement/blocks/{block_id}/children/batch_delete"
)
}
DocxApiV1::DocumentCreate => "/open-apis/docx/v1/documents".to_string(),
DocxApiV1::DocumentGet(document_id) => {
format!("/open-apis/docx/v1/documents/{document_id}")
}
DocxApiV1::DocumentRawContent(document_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/raw_content")
}
DocxApiV1::DocumentBlockList(document_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks")
}
DocxApiV1::DocumentBlockChildrenCreate(document_id, block_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}/children")
}
DocxApiV1::DocumentBlockDescendantCreate(document_id, block_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}/descendant")
}
DocxApiV1::DocumentBlockPatch(document_id, block_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}")
}
DocxApiV1::DocumentBlockGet(document_id, block_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}")
}
DocxApiV1::DocumentBlockBatchUpdate(document_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/batch_update")
}
DocxApiV1::DocumentBlockChildrenGet(document_id, block_id) => {
format!("/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}/children")
}
DocxApiV1::DocumentBlockChildrenBatchDelete(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}/children/batch_delete"
)
}
DocxApiV1::DocumentConvert => "/open-apis/docx/documents/blocks/convert".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum WikiApiV2 {
SpaceList,
SpaceGet(String),
SpaceCreate,
SpaceSettingUpdate(String),
SpaceGetNode,
SpaceNodeList(String),
SpaceNodeCreate(String),
SpaceMemberList(String),
SpaceMemberCreate(String),
SpaceMemberDelete(String, String), SpaceNodeMove(String, String),
SpaceNodeUpdateTitle(String, String),
SpaceNodeCopy(String, String),
SpaceNodeMoveDocsToWiki(String),
TaskGet(String),
}
impl WikiApiV2 {
pub fn to_url(&self) -> String {
match self {
WikiApiV2::SpaceList => "/open-apis/wiki/v2/spaces".to_string(),
WikiApiV2::SpaceGet(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}")
}
WikiApiV2::SpaceCreate => "/open-apis/wiki/v2/spaces".to_string(),
WikiApiV2::SpaceSettingUpdate(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/setting")
}
WikiApiV2::SpaceGetNode => "/open-apis/wiki/v2/spaces/get_node".to_string(),
WikiApiV2::SpaceNodeList(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes")
}
WikiApiV2::SpaceNodeCreate(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes")
}
WikiApiV2::SpaceMemberList(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members")
}
WikiApiV2::SpaceMemberCreate(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members")
}
WikiApiV2::SpaceMemberDelete(space_id, member_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members/{member_id}")
}
WikiApiV2::SpaceNodeMove(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/move")
}
WikiApiV2::SpaceNodeUpdateTitle(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/update_title")
}
WikiApiV2::SpaceNodeCopy(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/copy")
}
WikiApiV2::SpaceNodeMoveDocsToWiki(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/move_docs_to_wiki")
}
WikiApiV2::TaskGet(task_id) => {
format!("/open-apis/wiki/v2/tasks/{task_id}")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum CcmDocApiOld {
Create,
Meta(String), SheetMeta(String), RawContent(String), Content(String), BatchUpdate(String), }
impl CcmDocApiOld {
pub fn to_url(&self) -> String {
match self {
CcmDocApiOld::Create => "/open-apis/doc/v2/create".to_string(),
CcmDocApiOld::Meta(doc_token) => {
format!("/open-apis/doc/v2/meta/{doc_token}")
}
CcmDocApiOld::SheetMeta(doc_token) => {
format!("/open-apis/doc/v2/{doc_token}/sheet_meta")
}
CcmDocApiOld::RawContent(doc_token) => {
format!("/open-apis/doc/v2/{doc_token}/raw_content")
}
CcmDocApiOld::Content(doc_token) => {
format!("/open-apis/doc/v2/{doc_token}/content")
}
CcmDocApiOld::BatchUpdate(doc_token) => {
format!("/open-apis/doc/v2/{doc_token}/batch_update")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum CcmDocsApiOld {
SearchObject,
Meta,
}
impl CcmDocsApiOld {
pub fn to_url(&self) -> String {
match self {
CcmDocsApiOld::SearchObject => "/open-apis/suite/docs-api/search/object".to_string(),
CcmDocsApiOld::Meta => "/open-apis/suite/docs-api/meta".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum CcmDriveExplorerApiOld {
RootFolderMeta,
FolderMeta(String), File(String), FileSpreadsheets(String), FileCopy(String), FileDocs(String), FolderChildren(String), Folder(String), }
impl CcmDriveExplorerApiOld {
pub fn to_url(&self) -> String {
match self {
CcmDriveExplorerApiOld::RootFolderMeta => {
"/open-apis/drive/explorer/v2/root_folder/meta".to_string()
}
CcmDriveExplorerApiOld::FolderMeta(folder_token) => {
format!("/open-apis/drive/explorer/v2/folder/{folder_token}/meta")
}
CcmDriveExplorerApiOld::File(folder_token) => {
format!("/open-apis/drive/explorer/v2/file/{folder_token}")
}
CcmDriveExplorerApiOld::FileSpreadsheets(spreadsheet_token) => {
format!("/open-apis/drive/explorer/v2/file/spreadsheets/{spreadsheet_token}")
}
CcmDriveExplorerApiOld::FileCopy(file_token) => {
format!("/open-apis/drive/explorer/v2/file/copy/files/{file_token}")
}
CcmDriveExplorerApiOld::FileDocs(doc_token) => {
format!("/open-apis/drive/explorer/v2/file/docs/{doc_token}")
}
CcmDriveExplorerApiOld::FolderChildren(folder_token) => {
format!("/open-apis/drive/explorer/v2/folder/{folder_token}/children")
}
CcmDriveExplorerApiOld::Folder(folder_token) => {
format!("/open-apis/drive/explorer/v2/folder/{folder_token}")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum CcmDriveExplorerApi {
RootFolderMeta,
FolderMeta(String), File(String), FileCopy(String), FileDocs(String), FileSpreadsheets(String), FolderChildren(String), Folder,
}
impl CcmDriveExplorerApi {
pub fn to_url(&self) -> String {
match self {
CcmDriveExplorerApi::RootFolderMeta => {
"/open-apis/drive/v1/explorer/root_folder/meta".to_string()
}
CcmDriveExplorerApi::FolderMeta(folder_token) => {
format!("/open-apis/drive/v1/explorer/folder/{folder_token}/meta")
}
CcmDriveExplorerApi::File(file_token) => {
format!("/open-apis/drive/v1/explorer/file/{file_token}")
}
CcmDriveExplorerApi::FileCopy(file_token) => {
format!("/open-apis/drive/v1/explorer/file/copy/files/{file_token}")
}
CcmDriveExplorerApi::FileDocs(file_token) => {
format!("/open-apis/drive/v1/explorer/file/docs/{file_token}")
}
CcmDriveExplorerApi::FileSpreadsheets(file_token) => {
format!("/open-apis/drive/v1/explorer/file/spreadsheets/{file_token}")
}
CcmDriveExplorerApi::FolderChildren(folder_token) => {
format!("/open-apis/drive/v1/explorer/folder/{folder_token}/children")
}
CcmDriveExplorerApi::Folder => "/open-apis/drive/v1/explorer/folder".to_string(),
}
}
pub fn to_url_with_params(&self, params: &[(&str, String)]) -> String {
let base_url = self.to_url();
if params.is_empty() {
return base_url;
}
let query_string = params
.iter()
.map(|(key, value)| format!("{}={}", key, simple_url_encode(value)))
.collect::<Vec<_>>()
.join("&");
format!("{base_url}?{query_string}")
}
}
fn simple_url_encode(input: &str) -> String {
input
.chars()
.map(|c| match c {
'A'..='Z' | 'a'..='z' | '0'..='9' | '-' | '_' | '.' | '~' => c.to_string(),
_ => format!("%{:02X}", c as u8),
})
.collect()
}
#[derive(Debug, Clone, PartialEq)]
pub enum PermissionApi {
MemberPermitted,
MemberTransfer,
Public,
}
impl PermissionApi {
pub fn to_url(&self) -> String {
match self {
PermissionApi::MemberPermitted => {
"/open-apis/drive/v1/permission/member/permitted".to_string()
}
PermissionApi::MemberTransfer => {
"/open-apis/drive/v1/permission/member/transfer".to_string()
}
PermissionApi::Public => "/open-apis/drive/v1/permission/v2/public/".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum PermissionApiOld {
MemberPermitted,
MemberTransfer,
Public,
}
impl PermissionApiOld {
pub fn to_url(&self) -> String {
match self {
PermissionApiOld::MemberPermitted => {
"/open-apis/drive/v1/permission/member/permitted".to_string()
}
PermissionApiOld::MemberTransfer => {
"/open-apis/drive/v1/permission/member/transfer".to_string()
}
PermissionApiOld::Public => "/open-apis/drive/v1/permission/v2/public/".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum CcmSheetApiOld {
OperateSheets(String), UpdateSheetProperties(String), DimensionRange(String), InsertDimensionRange(String), DimensionRangeUpdate(String), DimensionRangeDelete(String), MergeCells(String), UnmergeCells(String), Style(String), StylesBatchUpdate(String), ValuesPrepend(String), ValuesAppend(String), ValuesImage(String), ValuesRange(String, String), ValuesBatchGet(String), Values(String), ValuesBatchUpdate(String), ProtectedDimension(String), ProtectedRangeBatchUpdate(String), ProtectedRangeBatchGet(String), ProtectedRangeBatchDel(String), Metainfo(String), Properties(String), Import,
ImportResult,
ConditionFormats(String), ConditionFormatsBatchCreate(String), ConditionFormatsBatchDelete(String), ConditionFormatsBatchUpdate(String), DataValidation(String), DataValidationCreate(String), DataValidationUpdate(String, String), DataValidationDelete(String), ReadSingleRange(String, String), ReadMultipleRanges(String), WriteSingleRange(String), BatchWriteRanges(String), AppendValues(String), InsertValues(String), GetSpreadsheet(String), CreateSpreadsheet,
UpdateSpreadsheet(String), AddSheet(String), GetSheet(String, String), UpdateSheet(String), DeleteSheet(String), CreateFilter(String), GetFilter(String), UpdateFilter(String), DeleteFilter(String), CreateFilterView(String, String), UpdateFilterView(String, String, String), QueryFilterViews(String, String), GetFilterView(String, String, String), DeleteFilterView(String, String, String), CreateFilterCondition(String, String, String), UpdateFilterCondition(String, String, String, String), QueryFilterConditions(String, String, String), GetFilterCondition(String, String, String, String), DeleteFilterCondition(String, String, String, String), CreateFloatImage(String, String), UpdateFloatImage(String, String, String), GetFloatImage(String, String, String), QueryFloatImages(String, String), DeleteFloatImage(String, String, String), DeleteRange(String), InsertDimension(String), MoveDimension(String), ReplaceRange(String), FindReplace(String), }
impl CcmSheetApiOld {
pub fn to_url(&self) -> String {
match self {
CcmSheetApiOld::OperateSheets(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update")
}
CcmSheetApiOld::UpdateSheetProperties(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update")
}
CcmSheetApiOld::Style(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/style")
}
CcmSheetApiOld::StylesBatchUpdate(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/styles_batch_update")
}
CcmSheetApiOld::ValuesPrepend(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_prepend")
}
CcmSheetApiOld::ValuesAppend(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_append")
}
CcmSheetApiOld::ValuesImage(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_image")
}
CcmSheetApiOld::ValuesRange(spreadsheet_token, range) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{range}")
}
CcmSheetApiOld::ValuesBatchGet(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_get")
}
CcmSheetApiOld::Values(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values")
}
CcmSheetApiOld::ValuesBatchUpdate(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_update")
}
CcmSheetApiOld::DimensionRange(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dimension_range")
}
CcmSheetApiOld::InsertDimensionRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/insert_dimension_range"
)
}
CcmSheetApiOld::DimensionRangeUpdate(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dimension_range")
}
CcmSheetApiOld::DimensionRangeDelete(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dimension_range")
}
CcmSheetApiOld::MergeCells(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/merge_cells")
}
CcmSheetApiOld::UnmergeCells(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/unmerge_cells")
}
CcmSheetApiOld::ProtectedDimension(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/protected_dimension")
}
CcmSheetApiOld::ProtectedRangeBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/protected_range_batch_update"
)
}
CcmSheetApiOld::ProtectedRangeBatchGet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/protected_range_batch_get"
)
}
CcmSheetApiOld::ProtectedRangeBatchDel(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/protected_range_batch_del"
)
}
CcmSheetApiOld::Metainfo(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/metainfo")
}
CcmSheetApiOld::Properties(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/properties")
}
CcmSheetApiOld::Import => "/open-apis/sheets/v2/import".to_string(),
CcmSheetApiOld::ImportResult => "/open-apis/sheets/v2/import/result".to_string(),
CcmSheetApiOld::ConditionFormats(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/condition_formats")
}
CcmSheetApiOld::ConditionFormatsBatchCreate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/condition_formats/batch_create"
)
}
CcmSheetApiOld::ConditionFormatsBatchDelete(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/condition_formats/batch_delete"
)
}
CcmSheetApiOld::ConditionFormatsBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/condition_formats/batch_update"
)
}
CcmSheetApiOld::DataValidation(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dataValidation")
}
CcmSheetApiOld::DataValidationCreate(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dataValidation")
}
CcmSheetApiOld::DataValidationUpdate(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dataValidation/{sheet_id}"
)
}
CcmSheetApiOld::DataValidationDelete(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dataValidation")
}
CcmSheetApiOld::ReadSingleRange(spreadsheet_token, range) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{range}")
}
CcmSheetApiOld::ReadMultipleRanges(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_get")
}
CcmSheetApiOld::WriteSingleRange(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values")
}
CcmSheetApiOld::BatchWriteRanges(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_update")
}
CcmSheetApiOld::AppendValues(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_append")
}
CcmSheetApiOld::InsertValues(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_prepend")
}
CcmSheetApiOld::GetSpreadsheet(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}")
}
CcmSheetApiOld::CreateSpreadsheet => "/open-apis/sheets/v3/spreadsheets".to_string(),
CcmSheetApiOld::UpdateSpreadsheet(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}")
}
CcmSheetApiOld::AddSheet(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update")
}
CcmSheetApiOld::GetSheet(spreadsheet_token, sheet_id) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}")
}
CcmSheetApiOld::UpdateSheet(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update")
}
CcmSheetApiOld::DeleteSheet(spreadsheet_token) => {
format!("/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update")
}
CcmSheetApiOld::CreateFilter(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/filterViews")
}
CcmSheetApiOld::GetFilter(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/filterViews/query")
}
CcmSheetApiOld::UpdateFilter(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/filterViews")
}
CcmSheetApiOld::DeleteFilter(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/filterViews")
}
CcmSheetApiOld::CreateFilterView(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views"
)
}
CcmSheetApiOld::UpdateFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}"
)
}
CcmSheetApiOld::QueryFilterViews(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/query"
)
}
CcmSheetApiOld::GetFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}"
)
}
CcmSheetApiOld::DeleteFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}"
)
}
CcmSheetApiOld::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions"
)
}
CcmSheetApiOld::UpdateFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/{condition_id}"
)
}
CcmSheetApiOld::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/query"
)
}
CcmSheetApiOld::GetFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/{condition_id}"
)
}
CcmSheetApiOld::DeleteFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/{condition_id}"
)
}
CcmSheetApiOld::CreateFloatImage(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images"
)
}
CcmSheetApiOld::UpdateFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/{float_image_id}"
)
}
CcmSheetApiOld::GetFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/{float_image_id}"
)
}
CcmSheetApiOld::QueryFloatImages(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/query"
)
}
CcmSheetApiOld::DeleteFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/{float_image_id}"
)
}
CcmSheetApiOld::DeleteRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/dimensionRange/delete"
)
}
CcmSheetApiOld::InsertDimension(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/dimensionRange/insert"
)
}
CcmSheetApiOld::MoveDimension(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/dimensionRange/move")
}
CcmSheetApiOld::ReplaceRange(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/values/batchReplace")
}
CcmSheetApiOld::FindReplace(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/values/batchFindReplace"
)
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum DriveApi {
ListFiles,
CreateFolder,
TaskCheck,
BatchQueryMetas,
GetFileStatistics(String), ListFileViewRecords(String), CopyFile(String), MoveFile(String), DeleteFile(String), CreateShortcut,
UploadFile,
UploadPrepare,
UploadPart,
UploadFinish,
DownloadFile(String), CreateImportTask,
GetImportTask(String), CreateExportTask,
GetExportTask(String), DownloadExportFile(String), UploadMedia,
UploadMediaPrepare,
UploadMediaPart,
UploadMediaFinish,
DownloadMedia(String), GetMediaTempDownloadUrls,
CreateFileVersion(String), ListFileVersions(String), GetFileVersion(String, String), DeleteFileVersion(String, String), SubscribeFile(String), GetFileSubscribe(String), DeleteFileSubscribe(String), CreatePermissionMember(String), BatchCreatePermissionMember(String), UpdatePermissionMember(String, String), ListPermissionMembers(String), DeletePermissionMember(String, String), TransferOwner(String), AuthPermissionMember(String), UpdatePublicPermission(String), GetPublicPermission(String), CreatePublicPassword(String), UpdatePublicPassword(String), DeletePublicPassword(String), ListFileComments(String), BatchQueryComments(String), PatchComment(String, String), CreateComment(String), GetComment(String, String), ListCommentReplies(String, String), UpdateCommentReply(String, String, String), DeleteCommentReply(String, String, String), GetFileSubscription(String, String), CreateFileSubscription(String), UpdateFileSubscription(String, String),
ListFileLikes(String), GetPublicPermissionV2(String), UpdatePublicPermissionV2(String),
MediaUploadTasks,
MediaUploadTask(String), CreateMediaShareLink(String), GetPublicPassword(String), }
impl DriveApi {
pub fn to_url(&self) -> String {
match self {
DriveApi::ListFiles => "/open-apis/drive/v1/files".to_string(),
DriveApi::CreateFolder => "/open-apis/drive/v1/files/create_folder".to_string(),
DriveApi::TaskCheck => "/open-apis/drive/v1/files/task_check".to_string(),
DriveApi::BatchQueryMetas => "/open-apis/drive/v1/metas/batch_query".to_string(),
DriveApi::GetFileStatistics(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/statistics")
}
DriveApi::ListFileViewRecords(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/view_records")
}
DriveApi::CopyFile(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/copy")
}
DriveApi::MoveFile(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/move")
}
DriveApi::DeleteFile(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}")
}
DriveApi::CreateShortcut => "/open-apis/drive/v1/files/create_shortcut".to_string(),
DriveApi::UploadFile => "/open-apis/drive/v1/files/upload_all".to_string(),
DriveApi::UploadPrepare => "/open-apis/drive/v1/files/upload_prepare".to_string(),
DriveApi::UploadPart => "/open-apis/drive/v1/files/upload_part".to_string(),
DriveApi::UploadFinish => "/open-apis/drive/v1/files/upload_finish".to_string(),
DriveApi::DownloadFile(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/download")
}
DriveApi::CreateImportTask => "/open-apis/drive/v1/import_tasks".to_string(),
DriveApi::GetImportTask(ticket) => {
format!("/open-apis/drive/v1/import_tasks/{ticket}")
}
DriveApi::CreateExportTask => "/open-apis/drive/v1/export_tasks".to_string(),
DriveApi::GetExportTask(ticket) => {
format!("/open-apis/drive/v1/export_tasks/{ticket}")
}
DriveApi::DownloadExportFile(file_token) => {
format!("/open-apis/drive/v1/export_tasks/file/{file_token}/download")
}
DriveApi::UploadMedia => "/open-apis/drive/v1/medias/upload_all".to_string(),
DriveApi::UploadMediaPrepare => "/open-apis/drive/v1/medias/upload_prepare".to_string(),
DriveApi::UploadMediaPart => "/open-apis/drive/v1/medias/upload_part".to_string(),
DriveApi::UploadMediaFinish => "/open-apis/drive/v1/medias/upload_finish".to_string(),
DriveApi::DownloadMedia(file_token) => {
format!("/open-apis/drive/v1/medias/{file_token}/download")
}
DriveApi::GetMediaTempDownloadUrls => {
"/open-apis/drive/v1/medias/batch_get_tmp_download_url".to_string()
}
DriveApi::CreateFileVersion(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/versions")
}
DriveApi::ListFileVersions(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/versions")
}
DriveApi::GetFileVersion(file_token, version_id) => {
format!("/open-apis/drive/v1/files/{file_token}/versions/{version_id}")
}
DriveApi::DeleteFileVersion(file_token, version_id) => {
format!("/open-apis/drive/v1/files/{file_token}/versions/{version_id}")
}
DriveApi::SubscribeFile(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/subscribe")
}
DriveApi::GetFileSubscribe(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/get_subscribe")
}
DriveApi::DeleteFileSubscribe(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/delete_subscribe")
}
DriveApi::CreatePermissionMember(token) => {
format!("/open-apis/drive/v1/permissions/{token}/members")
}
DriveApi::BatchCreatePermissionMember(token) => {
format!("/open-apis/drive/v1/permissions/{token}/members/batch_create")
}
DriveApi::UpdatePermissionMember(token, member_id) => {
format!("/open-apis/drive/v1/permissions/{token}/members/{member_id}")
}
DriveApi::ListPermissionMembers(token) => {
format!("/open-apis/drive/v1/permissions/{token}/members")
}
DriveApi::DeletePermissionMember(token, member_id) => {
format!("/open-apis/drive/v1/permissions/{token}/members/{member_id}")
}
DriveApi::TransferOwner(token) => {
format!("/open-apis/drive/v1/permissions/{token}/members/transfer_owner")
}
DriveApi::AuthPermissionMember(token) => {
format!("/open-apis/drive/v1/permissions/{token}/members/auth")
}
DriveApi::UpdatePublicPermission(token) => {
format!("/open-apis/drive/v1/permissions/{token}/public")
}
DriveApi::GetPublicPermission(token) => {
format!("/open-apis/drive/v1/permissions/{token}/public")
}
DriveApi::CreatePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{token}/public/password")
}
DriveApi::UpdatePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{token}/public/password")
}
DriveApi::DeletePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{token}/public/password")
}
DriveApi::ListFileComments(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/comments")
}
DriveApi::BatchQueryComments(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/comments/batch_query")
}
DriveApi::PatchComment(file_token, comment_id) => {
format!("/open-apis/drive/v1/files/{file_token}/comments/{comment_id}")
}
DriveApi::CreateComment(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/comments")
}
DriveApi::GetComment(file_token, comment_id) => {
format!("/open-apis/drive/v1/files/{file_token}/comments/{comment_id}")
}
DriveApi::ListCommentReplies(file_token, comment_id) => {
format!("/open-apis/drive/v1/files/{file_token}/comments/{comment_id}/replies")
}
DriveApi::UpdateCommentReply(file_token, comment_id, reply_id) => {
format!(
"/open-apis/drive/v1/files/{file_token}/comments/{comment_id}/replies/{reply_id}"
)
}
DriveApi::DeleteCommentReply(file_token, comment_id, reply_id) => {
format!(
"/open-apis/drive/v1/files/{file_token}/comments/{comment_id}/replies/{reply_id}"
)
}
DriveApi::GetFileSubscription(file_token, subscription_id) => {
format!("/open-apis/drive/v1/files/{file_token}/subscriptions/{subscription_id}")
}
DriveApi::CreateFileSubscription(file_token) => {
format!("/open-apis/drive/v1/files/{file_token}/subscriptions")
}
DriveApi::UpdateFileSubscription(file_token, subscription_id) => {
format!("/open-apis/drive/v1/files/{file_token}/subscriptions/{subscription_id}")
}
DriveApi::ListFileLikes(file_token) => {
format!("/open-apis/drive/v2/files/{file_token}/likes")
}
DriveApi::GetPublicPermissionV2(token) => {
format!("/open-apis/drive/v2/permissions/{token}/public")
}
DriveApi::UpdatePublicPermissionV2(token) => {
format!("/open-apis/drive/v2/permissions/{token}/public")
}
DriveApi::MediaUploadTasks => "/open-apis/drive/v1/medias/upload_tasks".to_string(),
DriveApi::MediaUploadTask(task_id) => {
format!("/open-apis/drive/v1/medias/upload_tasks/{task_id}")
}
DriveApi::CreateMediaShareLink(file_token) => {
format!("/open-apis/drive/v1/medias/{file_token}/share_link")
}
DriveApi::GetPublicPassword(file_token) => {
format!("/open-apis/drive/v1/publics/{file_token}/password")
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum WikiApi {
ListSpaces,
GetSpace,
CreateSpace,
ListSpaceMembers(String), CreateSpaceMember(String), DeleteSpaceMember(String, String),
UpdateSpaceSetting(String),
CreateSpaceNode(String), GetSpaceNode,
ListSpaceNodes,
MoveSpaceNode(String, String), UpdateSpaceNodeTitle(String, String), CopySpaceNode(String, String), MoveDocsToWiki(String),
GetTask(String),
SearchNodes,
}
impl WikiApi {
pub fn to_url(&self) -> String {
match self {
WikiApi::ListSpaces => "/open-apis/wiki/v2/spaces".to_string(),
WikiApi::GetSpace => "/open-apis/wiki/v2/spaces/get_node".to_string(),
WikiApi::CreateSpace => "/open-apis/wiki/v2/spaces".to_string(),
WikiApi::ListSpaceMembers(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members")
}
WikiApi::CreateSpaceMember(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members")
}
WikiApi::DeleteSpaceMember(space_id, member_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/members/{member_id}")
}
WikiApi::UpdateSpaceSetting(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/setting")
}
WikiApi::CreateSpaceNode(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes")
}
WikiApi::GetSpaceNode => "/open-apis/wiki/v2/spaces/get_node".to_string(),
WikiApi::ListSpaceNodes => "/open-apis/wiki/v2/space.node/list".to_string(),
WikiApi::MoveSpaceNode(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/move")
}
WikiApi::UpdateSpaceNodeTitle(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/update_title")
}
WikiApi::CopySpaceNode(space_id, node_token) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/{node_token}/copy")
}
WikiApi::MoveDocsToWiki(space_id) => {
format!("/open-apis/wiki/v2/spaces/{space_id}/nodes/move_docs_to_wiki")
}
WikiApi::GetTask(task_id) => {
format!("/open-apis/wiki/v2/tasks/{task_id}")
}
WikiApi::SearchNodes => "/open-apis/wiki/v1/nodes/search".to_string(),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum SheetsApiV3 {
CreateSpreadsheet,
GetSpreadsheet(String), PatchSpreadsheet(String),
QuerySheets(String), GetSheet(String, String), MoveDimension(String, String), FindCells(String, String), ReplaceCells(String, String),
CreateFilter(String, String), UpdateFilter(String, String), GetFilter(String, String), DeleteFilter(String, String),
CreateFilterView(String, String), QueryFilterViews(String, String), GetFilterView(String, String, String), PatchFilterView(String, String, String), DeleteFilterView(String, String, String),
CreateFilterCondition(String, String, String), QueryFilterConditions(String, String, String), GetFilterCondition(String, String, String, String), UpdateFilterCondition(String, String, String, String), DeleteFilterCondition(String, String, String, String),
CreateFloatImage(String, String), QueryFloatImages(String, String), GetFloatImage(String, String, String), PatchFloatImage(String, String, String), DeleteFloatImage(String, String, String), }
impl SheetsApiV3 {
pub fn to_url(&self) -> String {
match self {
SheetsApiV3::CreateSpreadsheet => "/open-apis/sheets/v3/spreadsheets".to_string(),
SheetsApiV3::GetSpreadsheet(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}")
}
SheetsApiV3::PatchSpreadsheet(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}")
}
SheetsApiV3::QuerySheets(spreadsheet_token) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/query")
}
SheetsApiV3::GetSheet(spreadsheet_token, sheet_id) => {
format!("/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}")
}
SheetsApiV3::MoveDimension(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/move_dimension"
),
SheetsApiV3::FindCells(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/find"
),
SheetsApiV3::ReplaceCells(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/replace"
),
SheetsApiV3::CreateFilter(spreadsheet_token, sheet_id)
| SheetsApiV3::UpdateFilter(spreadsheet_token, sheet_id)
| SheetsApiV3::GetFilter(spreadsheet_token, sheet_id)
| SheetsApiV3::DeleteFilter(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter"
),
SheetsApiV3::CreateFilterView(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views"
),
SheetsApiV3::QueryFilterViews(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/query"
),
SheetsApiV3::GetFilterView(spreadsheet_token, sheet_id, filter_view_id)
| SheetsApiV3::PatchFilterView(spreadsheet_token, sheet_id, filter_view_id)
| SheetsApiV3::DeleteFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}"
)
}
SheetsApiV3::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions"
)
}
SheetsApiV3::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/query"
)
}
SheetsApiV3::GetFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
)
| SheetsApiV3::UpdateFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
)
| SheetsApiV3::DeleteFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter_views/{filter_view_id}/conditions/{condition_id}"
),
SheetsApiV3::CreateFloatImage(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images"
),
SheetsApiV3::QueryFloatImages(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/query"
),
SheetsApiV3::GetFloatImage(spreadsheet_token, sheet_id, float_image_id)
| SheetsApiV3::PatchFloatImage(spreadsheet_token, sheet_id, float_image_id)
| SheetsApiV3::DeleteFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/float_images/{float_image_id}"
)
}
}
}
}
pub const SHEETS_API_V3: &str = "/open-apis/sheets/v3";
#[derive(Debug, Clone, PartialEq)]
pub enum BaikeApiV1 {
DraftCreate,
DraftUpdate(String),
EntityCreate,
EntityUpdate(String), EntityGet(String), EntityDelete(String), EntityList,
EntityMatch,
EntitySearch,
EntityHighlight,
EntityExtract,
ClassificationList,
FileUpload,
FileDownload(String), }
impl BaikeApiV1 {
pub fn to_url(&self) -> String {
match self {
BaikeApiV1::DraftCreate => "/open-apis/baike/v1/drafts".to_string(),
BaikeApiV1::DraftUpdate(draft_id) => {
format!("/open-apis/baike/v1/drafts/{draft_id}")
}
BaikeApiV1::EntityCreate => "/open-apis/baike/v1/entities".to_string(),
BaikeApiV1::EntityUpdate(entity_id) => {
format!("/open-apis/baike/v1/entities/{entity_id}")
}
BaikeApiV1::EntityGet(entity_id) => {
format!("/open-apis/baike/v1/entities/{entity_id}")
}
BaikeApiV1::EntityDelete(entity_id) => {
format!("/open-apis/baike/v1/entities/{entity_id}")
}
BaikeApiV1::EntityList => "/open-apis/baike/v1/entities".to_string(),
BaikeApiV1::EntityMatch => "/open-apis/baike/v1/entities/match".to_string(),
BaikeApiV1::EntitySearch => "/open-apis/baike/v1/entities/search".to_string(),
BaikeApiV1::EntityHighlight => "/open-apis/baike/v1/entities/highlight".to_string(),
BaikeApiV1::EntityExtract => "/open-apis/baike/v1/entities/extract".to_string(),
BaikeApiV1::ClassificationList => "/open-apis/baike/v1/classifications".to_string(),
BaikeApiV1::FileUpload => "/open-apis/baike/v1/files/upload".to_string(),
BaikeApiV1::FileDownload(file_token) => {
format!("/open-apis/baike/v1/files/{file_token}/download")
}
}
}
}
pub const BAIKE_API_V1: &str = "/open-apis/baike/v1";
#[derive(Debug, Clone, PartialEq)]
pub enum LingoApiV1 {
DraftCreate,
DraftUpdate(String),
EntityCreate,
EntityUpdate(String), EntityDelete(String), EntityGet(String), EntityList,
EntityMatch,
EntitySearch,
EntityHighlight,
EntityBatchGet,
EntityBatchUpdate,
EntitySearchRecommend,
EntityHistoryGet(String), EntityHistoryList,
ClassificationList,
RepoList,
FileUpload,
FileDownload(String),
GenerateSummary,
ExtractKeywords,
TranslateText,
}
impl LingoApiV1 {
pub fn to_url(&self) -> String {
match self {
LingoApiV1::DraftCreate => "/open-apis/lingo/v1/drafts".to_string(),
LingoApiV1::DraftUpdate(draft_id) => {
format!("/open-apis/lingo/v1/drafts/{draft_id}")
}
LingoApiV1::EntityCreate => "/open-apis/lingo/v1/entities".to_string(),
LingoApiV1::EntityUpdate(entity_id) => {
format!("/open-apis/lingo/v1/entities/{entity_id}")
}
LingoApiV1::EntityDelete(entity_id) => {
format!("/open-apis/lingo/v1/entities/{entity_id}")
}
LingoApiV1::EntityGet(entity_id) => {
format!("/open-apis/lingo/v1/entities/{entity_id}")
}
LingoApiV1::EntityList => "/open-apis/lingo/v1/entities".to_string(),
LingoApiV1::EntityMatch => "/open-apis/lingo/v1/entities/match".to_string(),
LingoApiV1::EntitySearch => "/open-apis/lingo/v1/entities/search".to_string(),
LingoApiV1::EntityHighlight => "/open-apis/lingo/v1/entities/highlight".to_string(),
LingoApiV1::EntityBatchGet => "/open-apis/lingo/v1/entities:batchGet".to_string(),
LingoApiV1::EntityBatchUpdate => "/open-apis/lingo/v1/entities:batchUpdate".to_string(),
LingoApiV1::EntitySearchRecommend => {
"/open-apis/lingo/v1/entities:searchRecommend".to_string()
}
LingoApiV1::EntityHistoryGet(entity_id) => {
format!("/open-apis/lingo/v1/entities/{entity_id}/history")
}
LingoApiV1::EntityHistoryList => "/open-apis/lingo/v1/entityHistory".to_string(),
LingoApiV1::ClassificationList => "/open-apis/lingo/v1/classifications".to_string(),
LingoApiV1::RepoList => "/open-apis/lingo/v1/repos".to_string(),
LingoApiV1::FileUpload => "/open-apis/lingo/v1/files/upload".to_string(),
LingoApiV1::FileDownload(file_token) => {
format!("/open-apis/lingo/v1/files/{file_token}/download")
}
LingoApiV1::GenerateSummary => "/open-apis/lingo/v1/text:generateSummary".to_string(),
LingoApiV1::ExtractKeywords => "/open-apis/lingo/v1/text:extractKeywords".to_string(),
LingoApiV1::TranslateText => "/open-apis/lingo/v1/text:translate".to_string(),
}
}
}
pub const LINGO_API_V1: &str = "/open-apis/lingo/v1";
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_base_api_v2_role_create() {
let endpoint = BaseApiV2::RoleCreate("app_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/base/v2/apps/app_token_123/roles"
);
}
#[test]
fn test_base_api_v2_role_update() {
let endpoint =
BaseApiV2::RoleUpdate("app_token_123".to_string(), "role_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/base/v2/apps/app_token_123/roles/role_id_456"
);
}
#[test]
fn test_base_api_v2_role_list() {
let endpoint = BaseApiV2::RoleList("app_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/base/v2/apps/app_token_123/roles"
);
}
#[test]
fn test_base_api_v2_with_special_chars() {
let endpoint = BaseApiV2::RoleCreate("app-token_123".to_string());
assert!(endpoint.to_url().contains("app-token_123"));
}
#[test]
fn test_bitable_api_v1_app_create() {
let endpoint = BitableApiV1::AppCreate;
assert_eq!(endpoint.to_url(), "/open-apis/bitable/v1/apps");
}
#[test]
fn test_bitable_api_v1_app_copy() {
let endpoint = BitableApiV1::AppCopy("app_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/copy"
);
}
#[test]
fn test_bitable_api_v1_table_create() {
let endpoint = BitableApiV1::TableCreate("app_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables"
);
}
#[test]
fn test_bitable_api_v1_record_create() {
let endpoint =
BitableApiV1::RecordCreate("app_token_123".to_string(), "table_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/records"
);
}
#[test]
fn test_bitable_api_v1_field_create() {
let endpoint =
BitableApiV1::FieldCreate("app_token_123".to_string(), "table_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/fields"
);
}
#[test]
fn test_bitable_api_v1_block_workflow_list() {
let endpoint = BitableApiV1::BlockWorkflowList("app_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/block_workflows"
);
}
#[test]
fn test_bitable_api_v1_field_group_create() {
let endpoint =
BitableApiV1::FieldGroupCreate("app_token_123".to_string(), "table_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/field_groups"
);
}
#[test]
fn test_bitable_api_v1_form_upgrade() {
let endpoint = BitableApiV1::FormUpgrade(
"app_token_123".to_string(),
"table_id_456".to_string(),
"form_id_789".to_string(),
);
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/forms/form_id_789/upgrade"
);
}
#[test]
fn test_bitable_api_v1_view_create() {
let endpoint =
BitableApiV1::ViewCreate("app_token_123".to_string(), "table_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/views"
);
}
#[test]
fn test_bitable_api_v1_form_get() {
let endpoint = BitableApiV1::FormGet(
"app_token_123".to_string(),
"table_id_456".to_string(),
"form_id_789".to_string(),
);
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/forms/form_id_789"
);
}
#[test]
fn test_bitable_api_v1_role_member_create() {
let endpoint =
BitableApiV1::RoleMemberCreate("app_token_123".to_string(), "role_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/bitable/v1/apps/app_token_123/roles/role_id_456/members"
);
}
#[test]
fn test_bitable_api_v1_batch_operations() {
let endpoint = BitableApiV1::TableBatchCreate("app_token_123".to_string());
assert!(endpoint.to_url().contains("batch_create"));
let endpoint = BitableApiV1::RecordBatchDelete(
"app_token_123".to_string(),
"table_id_456".to_string(),
);
assert!(endpoint.to_url().contains("batch_delete"));
}
#[test]
fn test_minutes_api_v1_get() {
let endpoint = MinutesApiV1::Get("minute_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/minutes/v1/minutes/minute_token_123"
);
}
#[test]
fn test_minutes_api_v1_media_get() {
let endpoint = MinutesApiV1::MediaGet("minute_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/minutes/v1/minutes/minute_token_123/media"
);
}
#[test]
fn test_minutes_api_v1_transcript_get() {
let endpoint = MinutesApiV1::TranscriptGet("minute_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/minutes/v1/minutes/minute_token_123/transcript"
);
}
#[test]
fn test_minutes_api_v1_statistics_get() {
let endpoint = MinutesApiV1::StatisticsGet("minute_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/minutes/v1/minutes/minute_token_123/statistics"
);
}
#[test]
fn minute_subscription_issue_194_endpoints() {
assert_eq!(
MinutesApiV1::Subscription.to_url(),
"/open-apis/minutes/v1/minutes/subscription"
);
assert_eq!(
MinutesApiV1::Unsubscription.to_url(),
"/open-apis/minutes/v1/minutes/unsubscription"
);
}
#[test]
fn test_wiki_api_v1_node_search() {
let endpoint = WikiApiV1::NodeSearch;
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v1/nodes/search");
}
#[test]
fn test_docs_api_v1_content_get() {
let endpoint = DocsApiV1::ContentGet;
assert_eq!(endpoint.to_url(), "/open-apis/docs/v1/content");
}
#[test]
fn test_docx_api_v1_document_create() {
let endpoint = DocxApiV1::DocumentCreate;
assert_eq!(endpoint.to_url(), "/open-apis/docx/v1/documents");
}
#[test]
fn test_docx_api_v1_document_get() {
let endpoint = DocxApiV1::DocumentGet("doc_id_123".to_string());
assert_eq!(endpoint.to_url(), "/open-apis/docx/v1/documents/doc_id_123");
}
#[test]
fn test_docx_api_v1_document_block_list() {
let endpoint = DocxApiV1::DocumentBlockList("doc_id_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/docx/v1/documents/doc_id_123/blocks"
);
}
#[test]
fn test_docx_api_v1_chat_announcement_get() {
let endpoint = DocxApiV1::ChatAnnouncementGet("chat_id_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/docx/v1/chats/chat_id_123/announcement"
);
}
#[test]
fn test_docx_api_v1_document_convert() {
let endpoint = DocxApiV1::DocumentConvert;
assert_eq!(
endpoint.to_url(),
"/open-apis/docx/documents/blocks/convert"
);
}
#[test]
fn test_docx_api_v1_document_block_children_create() {
let endpoint = DocxApiV1::DocumentBlockChildrenCreate(
"doc_id_123".to_string(),
"block_id_456".to_string(),
);
assert_eq!(
endpoint.to_url(),
"/open-apis/docx/v1/documents/doc_id_123/blocks/block_id_456/children"
);
}
#[test]
fn test_wiki_api_v2_space_list() {
let endpoint = WikiApiV2::SpaceList;
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces");
}
#[test]
fn test_wiki_api_v2_space_get() {
let endpoint = WikiApiV2::SpaceGet("space_id_123".to_string());
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces/space_id_123");
}
#[test]
fn test_wiki_api_v2_space_create() {
let endpoint = WikiApiV2::SpaceCreate;
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces");
}
#[test]
fn test_wiki_api_v2_space_node_list() {
let endpoint = WikiApiV2::SpaceNodeList("space_id_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/wiki/v2/spaces/space_id_123/nodes"
);
}
#[test]
fn test_wiki_api_v2_space_member_delete() {
let endpoint =
WikiApiV2::SpaceMemberDelete("space_id_123".to_string(), "member_id_456".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/wiki/v2/spaces/space_id_123/members/member_id_456"
);
}
#[test]
fn test_wiki_api_v2_task_get() {
let endpoint = WikiApiV2::TaskGet("task_id_123".to_string());
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/tasks/task_id_123");
}
#[test]
fn test_ccm_doc_api_old_create() {
let endpoint = CcmDocApiOld::Create;
assert_eq!(endpoint.to_url(), "/open-apis/doc/v2/create");
}
#[test]
fn test_ccm_doc_api_old_meta() {
let endpoint = CcmDocApiOld::Meta("doc_token_123".to_string());
assert_eq!(endpoint.to_url(), "/open-apis/doc/v2/meta/doc_token_123");
}
#[test]
fn test_ccm_doc_api_old_raw_content() {
let endpoint = CcmDocApiOld::RawContent("doc_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/doc/v2/doc_token_123/raw_content"
);
}
#[test]
fn test_ccm_doc_api_old_batch_update() {
let endpoint = CcmDocApiOld::BatchUpdate("doc_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/doc/v2/doc_token_123/batch_update"
);
}
#[test]
fn test_ccm_docs_api_old_search_object() {
let endpoint = CcmDocsApiOld::SearchObject;
assert_eq!(endpoint.to_url(), "/open-apis/suite/docs-api/search/object");
}
#[test]
fn test_ccm_docs_api_old_meta() {
let endpoint = CcmDocsApiOld::Meta;
assert_eq!(endpoint.to_url(), "/open-apis/suite/docs-api/meta");
}
#[test]
fn test_ccm_drive_explorer_api_old_root_folder_meta() {
let endpoint = CcmDriveExplorerApiOld::RootFolderMeta;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/explorer/v2/root_folder/meta"
);
}
#[test]
fn test_ccm_drive_explorer_api_old_folder_meta() {
let endpoint = CcmDriveExplorerApiOld::FolderMeta("folder_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/explorer/v2/folder/folder_token_123/meta"
);
}
#[test]
fn test_ccm_drive_explorer_api_old_file_copy() {
let endpoint = CcmDriveExplorerApiOld::FileCopy("file_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/explorer/v2/file/copy/files/file_token_123"
);
}
#[test]
fn test_ccm_drive_explorer_api_root_folder_meta() {
let endpoint = CcmDriveExplorerApi::RootFolderMeta;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/explorer/root_folder/meta"
);
}
#[test]
fn test_ccm_drive_explorer_api_folder_meta() {
let endpoint = CcmDriveExplorerApi::FolderMeta("folder_token_123".to_string());
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/explorer/folder/folder_token_123/meta"
);
}
#[test]
fn test_ccm_drive_explorer_api_folder() {
let endpoint = CcmDriveExplorerApi::Folder;
assert_eq!(endpoint.to_url(), "/open-apis/drive/v1/explorer/folder");
}
#[test]
fn test_ccm_drive_explorer_api_to_url_with_params() {
let endpoint = CcmDriveExplorerApi::RootFolderMeta;
let params = vec![("key", "value".to_string())];
let url = endpoint.to_url_with_params(¶ms);
assert!(url.contains("?"));
assert!(url.contains("key=value"));
}
#[test]
fn test_ccm_drive_explorer_api_to_url_with_empty_params() {
let endpoint = CcmDriveExplorerApi::RootFolderMeta;
let params: Vec<(&str, String)> = vec![];
let url = endpoint.to_url_with_params(¶ms);
assert!(!url.contains("?"));
}
#[test]
fn test_ccm_drive_explorer_api_to_url_with_special_chars() {
let endpoint = CcmDriveExplorerApi::RootFolderMeta;
let params = vec![("query", "hello world".to_string())];
let url = endpoint.to_url_with_params(¶ms);
assert!(url.contains("%20"));
}
#[test]
fn test_permission_api_member_permitted() {
let endpoint = PermissionApi::MemberPermitted;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/permission/member/permitted"
);
}
#[test]
fn test_permission_api_member_transfer() {
let endpoint = PermissionApi::MemberTransfer;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/permission/member/transfer"
);
}
#[test]
fn test_permission_api_public() {
let endpoint = PermissionApi::Public;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/permission/v2/public/"
);
}
#[test]
fn test_permission_api_old_member_permitted() {
let endpoint = PermissionApiOld::MemberPermitted;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/permission/member/permitted"
);
}
#[test]
fn test_permission_api_old_public() {
let endpoint = PermissionApiOld::Public;
assert_eq!(
endpoint.to_url(),
"/open-apis/drive/v1/permission/v2/public/"
);
}
}