#[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/{}/roles", app_token)
}
BaseApiV2::RoleUpdate(app_token, role_id) => {
format!("/open-apis/base/v2/apps/{}/roles/{}", app_token, role_id)
}
BaseApiV2::RoleList(app_token) => {
format!("/open-apis/base/v2/apps/{}/roles", app_token)
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum BitableApiV1 {
AppCreate,
AppCopy(String),
AppGet(String),
AppUpdate(String),
DashboardList(String),
DashboardCopy(String, 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),
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),
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/{}/copy", app_token)
}
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/{}/dashboards", app_token)
}
BitableApiV1::DashboardCopy(app_token, block_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/dashboards/{}/copy",
app_token, block_id
)
}
BitableApiV1::WorkflowList(app_token) => {
format!("/open-apis/bitable/v1/apps/{}/workflows", app_token)
}
BitableApiV1::WorkflowUpdate(app_token, workflow_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/workflows/{}",
app_token, workflow_id
)
}
BitableApiV1::TableCreate(app_token) => {
format!("/open-apis/bitable/v1/apps/{}/tables", app_token)
}
BitableApiV1::TableBatchCreate(app_token) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/batch_create",
app_token
)
}
BitableApiV1::TableUpdate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}",
app_token, table_id
)
}
BitableApiV1::TableDelete(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}",
app_token, table_id
)
}
BitableApiV1::TableBatchDelete(app_token) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/batch_delete",
app_token
)
}
BitableApiV1::TableGet(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}",
app_token, table_id
)
}
BitableApiV1::TableList(app_token) => {
format!("/open-apis/bitable/v1/apps/{}/tables", app_token)
}
BitableApiV1::TablePatch(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}",
app_token, table_id
)
}
BitableApiV1::FieldCreate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/fields",
app_token, table_id
)
}
BitableApiV1::FieldUpdate(app_token, table_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/fields/{}",
app_token, table_id, field_id
)
}
BitableApiV1::FieldDelete(app_token, table_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/fields/{}",
app_token, table_id, field_id
)
}
BitableApiV1::FieldList(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/fields",
app_token, table_id
)
}
BitableApiV1::ViewCreate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views",
app_token, table_id
)
}
BitableApiV1::ViewUpdate(app_token, table_id, view_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
app_token, table_id, view_id
)
}
BitableApiV1::ViewDelete(app_token, table_id, view_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
app_token, table_id, view_id
)
}
BitableApiV1::ViewGet(app_token, table_id, view_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
app_token, table_id, view_id
)
}
BitableApiV1::ViewList(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views",
app_token, table_id
)
}
BitableApiV1::ViewPatch(app_token, table_id, view_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
app_token, table_id, view_id
)
}
BitableApiV1::RecordCreate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records",
app_token, table_id
)
}
BitableApiV1::RecordBatchCreate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_create",
app_token, table_id
)
}
BitableApiV1::RecordGet(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
app_token, table_id, record_id
)
}
BitableApiV1::RecordBatchGet(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_get",
app_token, table_id
)
}
BitableApiV1::RecordUpdate(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
app_token, table_id, record_id
)
}
BitableApiV1::RecordBatchUpdate(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_update",
app_token, table_id
)
}
BitableApiV1::RecordDelete(app_token, table_id, record_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
app_token, table_id, record_id
)
}
BitableApiV1::RecordBatchDelete(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_delete",
app_token, table_id
)
}
BitableApiV1::RecordList(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records",
app_token, table_id
)
}
BitableApiV1::RecordSearch(app_token, table_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/records/search",
app_token, table_id
)
}
BitableApiV1::FormGet(app_token, table_id, form_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}",
app_token, table_id, form_id
)
}
BitableApiV1::FormPatch(app_token, table_id, form_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}",
app_token, table_id, form_id
)
}
BitableApiV1::FormFieldList(app_token, table_id, form_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}/fields",
app_token, table_id, form_id
)
}
BitableApiV1::FormFieldPatch(app_token, table_id, form_id, field_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}/fields/{}",
app_token, table_id, form_id, field_id
)
}
BitableApiV1::RoleCreate(app_token) => {
format!("/open-apis/bitable/v1/apps/{}/roles", app_token)
}
BitableApiV1::RoleUpdate(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{}/roles/{}", app_token, role_id)
}
BitableApiV1::RoleDelete(app_token, role_id) => {
format!("/open-apis/bitable/v1/apps/{}/roles/{}", app_token, role_id)
}
BitableApiV1::RoleList(app_token) => {
format!("/open-apis/bitable/v1/apps/{}/roles", app_token)
}
BitableApiV1::RoleMemberCreate(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/roles/{}/members",
app_token, role_id
)
}
BitableApiV1::RoleMemberBatchCreate(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/roles/{}/members/batch_create",
app_token, role_id
)
}
BitableApiV1::RoleMemberDelete(app_token, role_id, member_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/roles/{}/members/{}",
app_token, role_id, member_id
)
}
BitableApiV1::RoleMemberBatchDelete(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/roles/{}/members/batch_delete",
app_token, role_id
)
}
BitableApiV1::RoleMemberList(app_token, role_id) => {
format!(
"/open-apis/bitable/v1/apps/{}/roles/{}/members",
app_token, role_id
)
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum MinutesApiV1 {
Get(String),
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::MediaGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{}/media", minute_token)
}
MinutesApiV1::TranscriptGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{}/transcript", minute_token)
}
MinutesApiV1::StatisticsGet(minute_token) => {
format!("/open-apis/minutes/v1/minutes/{}/statistics", minute_token)
}
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum WikiApiV1 {
NodeSearch,
}
impl WikiApiV1 {
pub fn to_url(&self) -> String {
match self {
WikiApiV1::NodeSearch => "/open-apis/wiki/v2/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/{}/announcement", chat_id)
}
DocxApiV1::ChatAnnouncementBlockList(chat_id) => {
format!("/open-apis/docx/v1/chats/{}/announcement/blocks", chat_id)
}
DocxApiV1::ChatAnnouncementBlockChildrenCreate(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children",
chat_id, block_id
)
}
DocxApiV1::ChatAnnouncementBlockBatchUpdate(chat_id) => {
format!(
"/open-apis/docx/v1/chats/{}/announcement/blocks/batch_update",
chat_id
)
}
DocxApiV1::ChatAnnouncementBlockGet(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{}/announcement/blocks/{}",
chat_id, block_id
)
}
DocxApiV1::ChatAnnouncementBlockChildrenGet(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children",
chat_id, block_id
)
}
DocxApiV1::ChatAnnouncementBlockChildrenBatchDelete(chat_id, block_id) => {
format!(
"/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children/batch_delete",
chat_id, block_id
)
}
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/{}/raw_content", document_id)
}
DocxApiV1::DocumentBlockList(document_id) => {
format!("/open-apis/docx/v1/documents/{}/blocks", document_id)
}
DocxApiV1::DocumentBlockChildrenCreate(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}/children",
document_id, block_id
)
}
DocxApiV1::DocumentBlockDescendantCreate(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}/descendant",
document_id, block_id
)
}
DocxApiV1::DocumentBlockPatch(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}",
document_id, block_id
)
}
DocxApiV1::DocumentBlockGet(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}",
document_id, block_id
)
}
DocxApiV1::DocumentBlockBatchUpdate(document_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/batch_update",
document_id
)
}
DocxApiV1::DocumentBlockChildrenGet(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}/children",
document_id, block_id
)
}
DocxApiV1::DocumentBlockChildrenBatchDelete(document_id, block_id) => {
format!(
"/open-apis/docx/v1/documents/{}/blocks/{}/children/batch_delete",
document_id, block_id
)
}
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/{}/setting", space_id)
}
WikiApiV2::SpaceGetNode => "/open-apis/wiki/v2/spaces/get_node".to_string(),
WikiApiV2::SpaceNodeList(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
}
WikiApiV2::SpaceNodeCreate(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
}
WikiApiV2::SpaceMemberList(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
}
WikiApiV2::SpaceMemberCreate(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
}
WikiApiV2::SpaceMemberDelete(space_id, member_id) => {
format!(
"/open-apis/wiki/v2/spaces/{}/members/{}",
space_id, member_id
)
}
WikiApiV2::SpaceNodeMove(space_id, node_token) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/{}/move",
space_id, node_token
)
}
WikiApiV2::SpaceNodeUpdateTitle(space_id, node_token) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/{}/update_title",
space_id, node_token
)
}
WikiApiV2::SpaceNodeCopy(space_id, node_token) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/{}/copy",
space_id, node_token
)
}
WikiApiV2::SpaceNodeMoveDocsToWiki(space_id) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/move_docs_to_wiki",
space_id
)
}
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/{}/sheet_meta", doc_token)
}
CcmDocApiOld::RawContent(doc_token) => {
format!("/open-apis/doc/v2/{}/raw_content", doc_token)
}
CcmDocApiOld::Content(doc_token) => {
format!("/open-apis/doc/v2/{}/content", doc_token)
}
CcmDocApiOld::BatchUpdate(doc_token) => {
format!("/open-apis/doc/v2/{}/batch_update", doc_token)
}
}
}
}
#[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/{}/meta", folder_token)
}
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/{}/children",
folder_token
)
}
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/{}/meta", folder_token)
}
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/{}/children",
folder_token
)
}
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, String), DataValidationDelete(String), ReadSingleRange(String), ReadMultipleRanges(String), WriteSingleRange(String), BatchWriteRanges(String), AppendValues(String), InsertValues(String), GetSpreadsheet(String), CreateSpreadsheet,
UpdateSpreadsheet(String), AddSheet(String), GetSheet(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/{}/sheets_batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::UpdateSheetProperties(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::Style(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/style",
spreadsheet_token
)
}
CcmSheetApiOld::StylesBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/styles_batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::ValuesPrepend(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values_prepend",
spreadsheet_token
)
}
CcmSheetApiOld::ValuesAppend(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values_append",
spreadsheet_token
)
}
CcmSheetApiOld::ValuesImage(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values_image",
spreadsheet_token
)
}
CcmSheetApiOld::ValuesRange(spreadsheet_token, range) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values/{}",
spreadsheet_token, range
)
}
CcmSheetApiOld::ValuesBatchGet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values_batch_get",
spreadsheet_token
)
}
CcmSheetApiOld::Values(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values",
spreadsheet_token
)
}
CcmSheetApiOld::ValuesBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/values_batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::DimensionRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
spreadsheet_token
)
}
CcmSheetApiOld::InsertDimensionRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/insert_dimension_range",
spreadsheet_token
)
}
CcmSheetApiOld::DimensionRangeUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
spreadsheet_token
)
}
CcmSheetApiOld::DimensionRangeDelete(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
spreadsheet_token
)
}
CcmSheetApiOld::MergeCells(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/merge_cells",
spreadsheet_token
)
}
CcmSheetApiOld::UnmergeCells(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/unmerge_cells",
spreadsheet_token
)
}
CcmSheetApiOld::ProtectedDimension(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/protected_dimension",
spreadsheet_token
)
}
CcmSheetApiOld::ProtectedRangeBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::ProtectedRangeBatchGet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_get",
spreadsheet_token
)
}
CcmSheetApiOld::ProtectedRangeBatchDel(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_del",
spreadsheet_token
)
}
CcmSheetApiOld::Metainfo(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/metainfo",
spreadsheet_token
)
}
CcmSheetApiOld::Properties(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/properties",
spreadsheet_token
)
}
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/{}/condition_formats",
spreadsheet_token
)
}
CcmSheetApiOld::ConditionFormatsBatchCreate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_create",
spreadsheet_token
)
}
CcmSheetApiOld::ConditionFormatsBatchDelete(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_delete",
spreadsheet_token
)
}
CcmSheetApiOld::ConditionFormatsBatchUpdate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_update",
spreadsheet_token
)
}
CcmSheetApiOld::DataValidation(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
spreadsheet_token
)
}
CcmSheetApiOld::DataValidationCreate(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
spreadsheet_token
)
}
CcmSheetApiOld::DataValidationUpdate(
spreadsheet_token,
sheet_id,
data_validation_id,
) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dataValidation/{}/{}",
spreadsheet_token, sheet_id, data_validation_id
)
}
CcmSheetApiOld::DataValidationDelete(spreadsheet_token) => {
format!(
"/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
spreadsheet_token
)
}
CcmSheetApiOld::ReadSingleRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values",
spreadsheet_token
)
}
CcmSheetApiOld::ReadMultipleRanges(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/batchGet",
spreadsheet_token
)
}
CcmSheetApiOld::WriteSingleRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values",
spreadsheet_token
)
}
CcmSheetApiOld::BatchWriteRanges(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/batchUpdate",
spreadsheet_token
)
}
CcmSheetApiOld::AppendValues(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/append",
spreadsheet_token
)
}
CcmSheetApiOld::InsertValues(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/insert",
spreadsheet_token
)
}
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/v3/spreadsheets/{}/sheets",
spreadsheet_token
)
}
CcmSheetApiOld::GetSheet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/query",
spreadsheet_token
)
}
CcmSheetApiOld::UpdateSheet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets",
spreadsheet_token
)
}
CcmSheetApiOld::DeleteSheet(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets",
spreadsheet_token
)
}
CcmSheetApiOld::CreateFilter(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/filterViews",
spreadsheet_token
)
}
CcmSheetApiOld::GetFilter(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/filterViews/query",
spreadsheet_token
)
}
CcmSheetApiOld::UpdateFilter(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/filterViews",
spreadsheet_token
)
}
CcmSheetApiOld::DeleteFilter(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/filterViews",
spreadsheet_token
)
}
CcmSheetApiOld::CreateFilterView(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views",
spreadsheet_token, sheet_id
)
}
CcmSheetApiOld::UpdateFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
spreadsheet_token, sheet_id, filter_view_id
)
}
CcmSheetApiOld::QueryFilterViews(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/query",
spreadsheet_token, sheet_id
)
}
CcmSheetApiOld::GetFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
spreadsheet_token, sheet_id, filter_view_id
)
}
CcmSheetApiOld::DeleteFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
spreadsheet_token, sheet_id, filter_view_id
)
}
CcmSheetApiOld::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions",
spreadsheet_token, sheet_id, filter_view_id
)
}
CcmSheetApiOld::UpdateFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
spreadsheet_token, sheet_id, filter_view_id, condition_id
)
}
CcmSheetApiOld::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
format!("/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/query", spreadsheet_token, sheet_id, filter_view_id)
}
CcmSheetApiOld::GetFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
spreadsheet_token, sheet_id, filter_view_id, condition_id
)
}
CcmSheetApiOld::DeleteFilterCondition(
spreadsheet_token,
sheet_id,
filter_view_id,
condition_id,
) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
spreadsheet_token, sheet_id, filter_view_id, condition_id
)
}
CcmSheetApiOld::CreateFloatImage(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images",
spreadsheet_token, sheet_id
)
}
CcmSheetApiOld::UpdateFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
spreadsheet_token, sheet_id, float_image_id
)
}
CcmSheetApiOld::GetFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
spreadsheet_token, sheet_id, float_image_id
)
}
CcmSheetApiOld::QueryFloatImages(spreadsheet_token, sheet_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/query",
spreadsheet_token, sheet_id
)
}
CcmSheetApiOld::DeleteFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
spreadsheet_token, sheet_id, float_image_id
)
}
CcmSheetApiOld::DeleteRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/delete",
spreadsheet_token
)
}
CcmSheetApiOld::InsertDimension(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/insert",
spreadsheet_token
)
}
CcmSheetApiOld::MoveDimension(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/move",
spreadsheet_token
)
}
CcmSheetApiOld::ReplaceRange(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/batchReplace",
spreadsheet_token
)
}
CcmSheetApiOld::FindReplace(spreadsheet_token) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/values/batchFindReplace",
spreadsheet_token
)
}
}
}
}
#[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/{}/statistics", file_token)
}
DriveApi::ListFileViewRecords(file_token) => {
format!("/open-apis/drive/v1/files/{}/view_records", file_token)
}
DriveApi::CopyFile(file_token) => {
format!("/open-apis/drive/v1/files/{}/copy", file_token)
}
DriveApi::MoveFile(file_token) => {
format!("/open-apis/drive/v1/files/{}/move", file_token)
}
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/{}/download", file_token)
}
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/{}/download",
file_token
)
}
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/{}/download", file_token)
}
DriveApi::GetMediaTempDownloadUrls => {
"/open-apis/drive/v1/medias/batch_get_tmp_download_url".to_string()
}
DriveApi::CreateFileVersion(file_token) => {
format!("/open-apis/drive/v1/files/{}/versions", file_token)
}
DriveApi::ListFileVersions(file_token) => {
format!("/open-apis/drive/v1/files/{}/versions", file_token)
}
DriveApi::GetFileVersion(file_token, version_id) => {
format!(
"/open-apis/drive/v1/files/{}/versions/{}",
file_token, version_id
)
}
DriveApi::DeleteFileVersion(file_token, version_id) => {
format!(
"/open-apis/drive/v1/files/{}/versions/{}",
file_token, version_id
)
}
DriveApi::SubscribeFile(file_token) => {
format!("/open-apis/drive/v1/files/{}/subscribe", file_token)
}
DriveApi::GetFileSubscribe(file_token) => {
format!("/open-apis/drive/v1/files/{}/get_subscribe", file_token)
}
DriveApi::DeleteFileSubscribe(file_token) => {
format!("/open-apis/drive/v1/files/{}/delete_subscribe", file_token)
}
DriveApi::CreatePermissionMember(token) => {
format!("/open-apis/drive/v1/permissions/{}/members", token)
}
DriveApi::BatchCreatePermissionMember(token) => {
format!(
"/open-apis/drive/v1/permissions/{}/members/batch_create",
token
)
}
DriveApi::UpdatePermissionMember(token, member_id) => {
format!(
"/open-apis/drive/v1/permissions/{}/members/{}",
token, member_id
)
}
DriveApi::ListPermissionMembers(token) => {
format!("/open-apis/drive/v1/permissions/{}/members", token)
}
DriveApi::DeletePermissionMember(token, member_id) => {
format!(
"/open-apis/drive/v1/permissions/{}/members/{}",
token, member_id
)
}
DriveApi::TransferOwner(token) => {
format!(
"/open-apis/drive/v1/permissions/{}/members/transfer_owner",
token
)
}
DriveApi::AuthPermissionMember(token) => {
format!("/open-apis/drive/v1/permissions/{}/members/auth", token)
}
DriveApi::UpdatePublicPermission(token) => {
format!("/open-apis/drive/v1/permissions/{}/public", token)
}
DriveApi::GetPublicPermission(token) => {
format!("/open-apis/drive/v1/permissions/{}/public", token)
}
DriveApi::CreatePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{}/public/password", token)
}
DriveApi::UpdatePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{}/public/password", token)
}
DriveApi::DeletePublicPassword(token) => {
format!("/open-apis/drive/v1/permissions/{}/public/password", token)
}
DriveApi::ListFileComments(file_token) => {
format!("/open-apis/drive/v1/files/{}/comments", file_token)
}
DriveApi::BatchQueryComments(file_token) => {
format!(
"/open-apis/drive/v1/files/{}/comments/batch_query",
file_token
)
}
DriveApi::PatchComment(file_token, comment_id) => {
format!(
"/open-apis/drive/v1/files/{}/comments/{}",
file_token, comment_id
)
}
DriveApi::CreateComment(file_token) => {
format!("/open-apis/drive/v1/files/{}/comments", file_token)
}
DriveApi::GetComment(file_token, comment_id) => {
format!(
"/open-apis/drive/v1/files/{}/comments/{}",
file_token, comment_id
)
}
DriveApi::ListCommentReplies(file_token, comment_id) => {
format!(
"/open-apis/drive/v1/files/{}/comments/{}/replies",
file_token, comment_id
)
}
DriveApi::UpdateCommentReply(file_token, comment_id, reply_id) => {
format!(
"/open-apis/drive/v1/files/{}/comments/{}/replies/{}",
file_token, comment_id, reply_id
)
}
DriveApi::DeleteCommentReply(file_token, comment_id, reply_id) => {
format!(
"/open-apis/drive/v1/files/{}/comments/{}/replies/{}",
file_token, comment_id, reply_id
)
}
DriveApi::GetFileSubscription(file_token, subscription_id) => {
format!(
"/open-apis/drive/v1/files/{}/subscriptions/{}",
file_token, subscription_id
)
}
DriveApi::CreateFileSubscription(file_token) => {
format!("/open-apis/drive/v1/files/{}/subscriptions", file_token)
}
DriveApi::UpdateFileSubscription(file_token, subscription_id) => {
format!(
"/open-apis/drive/v1/files/{}/subscriptions/{}",
file_token, subscription_id
)
}
DriveApi::ListFileLikes(file_token) => {
format!("/open-apis/drive/v2/files/{}/likes", file_token)
}
DriveApi::GetPublicPermissionV2(token) => {
format!("/open-apis/drive/v2/permissions/{}/public", token)
}
DriveApi::UpdatePublicPermissionV2(token) => {
format!("/open-apis/drive/v2/permissions/{}/public", token)
}
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/{}/share_link", file_token)
}
DriveApi::GetPublicPassword(file_token) => {
format!("/open-apis/drive/v1/publics/{}/password", file_token)
}
}
}
}
#[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/{}/members", space_id)
}
WikiApi::CreateSpaceMember(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
}
WikiApi::DeleteSpaceMember(space_id, member_id) => {
format!(
"/open-apis/wiki/v2/spaces/{}/members/{}",
space_id, member_id
)
}
WikiApi::UpdateSpaceSetting(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/setting", space_id)
}
WikiApi::CreateSpaceNode(space_id) => {
format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
}
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/{}/nodes/{}/move",
space_id, node_token
)
}
WikiApi::UpdateSpaceNodeTitle(space_id, node_token) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/{}/update_title",
space_id, node_token
)
}
WikiApi::CopySpaceNode(space_id, node_token) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/{}/copy",
space_id, node_token
)
}
WikiApi::MoveDocsToWiki(space_id) => {
format!(
"/open-apis/wiki/v2/spaces/{}/nodes/move_docs_to_wiki",
space_id
)
}
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/{}/sheets/query",
spreadsheet_token
),
SheetsApiV3::GetSheet(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}",
spreadsheet_token, sheet_id
),
SheetsApiV3::MoveDimension(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/move_dimension",
spreadsheet_token, sheet_id
),
SheetsApiV3::FindCells(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/find",
spreadsheet_token, sheet_id
),
SheetsApiV3::ReplaceCells(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/replace",
spreadsheet_token, sheet_id
),
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/{}/sheets/{}/filter",
spreadsheet_token, sheet_id
),
SheetsApiV3::CreateFilterView(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views",
spreadsheet_token, sheet_id
),
SheetsApiV3::QueryFilterViews(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/query",
spreadsheet_token, sheet_id
),
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/{}/sheets/{}/filter_views/{}",
spreadsheet_token, sheet_id, filter_view_id
)
}
SheetsApiV3::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions",
spreadsheet_token, sheet_id, filter_view_id
)
}
SheetsApiV3::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/query",
spreadsheet_token, sheet_id, filter_view_id
)
}
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/{}/sheets/{}/filter_views/{}/conditions/{}",
spreadsheet_token, sheet_id, filter_view_id, condition_id
),
SheetsApiV3::CreateFloatImage(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images",
spreadsheet_token, sheet_id
),
SheetsApiV3::QueryFloatImages(spreadsheet_token, sheet_id) => format!(
"/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/query",
spreadsheet_token, sheet_id
),
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/{}/sheets/{}/float_images/{}",
spreadsheet_token, sheet_id, 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/{}/download", file_token)
}
}
}
}
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/{}/history", entity_id)
}
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/{}/download", file_token)
}
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_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 test_wiki_api_v1_node_search() {
let endpoint = WikiApiV1::NodeSearch;
assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/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/"
);
}
}