1#[derive(Debug, Clone, PartialEq)]
35pub enum BaseApiV2 {
36 RoleCreate(String),
38 RoleUpdate(String, String),
40 RoleList(String),
42}
43
44impl BaseApiV2 {
45 pub fn to_url(&self) -> String {
47 match self {
48 BaseApiV2::RoleCreate(app_token) => {
49 format!("/open-apis/base/v2/apps/{}/roles", app_token)
50 }
51 BaseApiV2::RoleUpdate(app_token, role_id) => {
52 format!("/open-apis/base/v2/apps/{}/roles/{}", app_token, role_id)
53 }
54 BaseApiV2::RoleList(app_token) => {
55 format!("/open-apis/base/v2/apps/{}/roles", app_token)
56 }
57 }
58 }
59}
60
61#[derive(Debug, Clone, PartialEq)]
63pub enum BitableApiV1 {
64 AppCreate,
66 AppCopy(String),
67 AppGet(String),
68 AppUpdate(String),
69 DashboardList(String),
70 DashboardCopy(String, String),
71 BlockWorkflowList(String),
73 WorkflowList(String),
74 WorkflowUpdate(String, String),
75
76 TableCreate(String),
78 TableBatchCreate(String),
79 TableUpdate(String, String),
80 TableDelete(String, String),
81 TableBatchDelete(String),
82 TableGet(String, String),
83 TableList(String),
84 TablePatch(String, String),
85
86 FieldCreate(String, String),
88 FieldGroupCreate(String, String),
89 FieldUpdate(String, String, String),
90 FieldDelete(String, String, String),
91 FieldList(String, String),
92
93 ViewCreate(String, String),
95 ViewUpdate(String, String, String),
96 ViewDelete(String, String, String),
97 ViewGet(String, String, String),
98 ViewList(String, String),
99 ViewPatch(String, String, String),
100
101 RecordCreate(String, String),
103 RecordBatchCreate(String, String),
104 RecordGet(String, String, String),
105 RecordBatchGet(String, String),
106 RecordUpdate(String, String, String),
107 RecordBatchUpdate(String, String),
108 RecordDelete(String, String, String),
109 RecordBatchDelete(String, String),
110 RecordList(String, String),
111 RecordSearch(String, String),
112
113 FormGet(String, String, String),
115 FormPatch(String, String, String),
116 FormUpgrade(String, String, String),
117 FormFieldList(String, String, String),
118 FormFieldPatch(String, String, String, String),
119
120 RoleCreate(String),
122 RoleUpdate(String, String),
123 RoleDelete(String, String),
124 RoleList(String),
125 RoleMemberCreate(String, String),
126 RoleMemberBatchCreate(String, String),
127 RoleMemberDelete(String, String, String),
128 RoleMemberBatchDelete(String, String),
129 RoleMemberList(String, String),
130}
131
132impl BitableApiV1 {
133 pub fn to_url(&self) -> String {
135 match self {
136 BitableApiV1::AppCreate => "/open-apis/bitable/v1/apps".to_string(),
138 BitableApiV1::AppCopy(app_token) => {
139 format!("/open-apis/bitable/v1/apps/{}/copy", app_token)
140 }
141 BitableApiV1::AppGet(app_token) => {
142 format!("/open-apis/bitable/v1/apps/{}", app_token)
143 }
144 BitableApiV1::AppUpdate(app_token) => {
145 format!("/open-apis/bitable/v1/apps/{}", app_token)
146 }
147 BitableApiV1::DashboardList(app_token) => {
148 format!("/open-apis/bitable/v1/apps/{}/dashboards", app_token)
149 }
150 BitableApiV1::DashboardCopy(app_token, block_id) => {
151 format!(
152 "/open-apis/bitable/v1/apps/{}/dashboards/{}/copy",
153 app_token, block_id
154 )
155 }
156 BitableApiV1::BlockWorkflowList(app_token) => {
157 format!("/open-apis/bitable/v1/apps/{}/block_workflows", app_token)
158 }
159 BitableApiV1::WorkflowList(app_token) => {
160 format!("/open-apis/bitable/v1/apps/{}/workflows", app_token)
161 }
162 BitableApiV1::WorkflowUpdate(app_token, workflow_id) => {
163 format!(
164 "/open-apis/bitable/v1/apps/{}/workflows/{}",
165 app_token, workflow_id
166 )
167 }
168
169 BitableApiV1::TableCreate(app_token) => {
171 format!("/open-apis/bitable/v1/apps/{}/tables", app_token)
172 }
173 BitableApiV1::TableBatchCreate(app_token) => {
174 format!(
175 "/open-apis/bitable/v1/apps/{}/tables/batch_create",
176 app_token
177 )
178 }
179 BitableApiV1::TableUpdate(app_token, table_id) => {
180 format!(
181 "/open-apis/bitable/v1/apps/{}/tables/{}",
182 app_token, table_id
183 )
184 }
185 BitableApiV1::TableDelete(app_token, table_id) => {
186 format!(
187 "/open-apis/bitable/v1/apps/{}/tables/{}",
188 app_token, table_id
189 )
190 }
191 BitableApiV1::TableBatchDelete(app_token) => {
192 format!(
193 "/open-apis/bitable/v1/apps/{}/tables/batch_delete",
194 app_token
195 )
196 }
197 BitableApiV1::TableGet(app_token, table_id) => {
198 format!(
199 "/open-apis/bitable/v1/apps/{}/tables/{}",
200 app_token, table_id
201 )
202 }
203 BitableApiV1::TableList(app_token) => {
204 format!("/open-apis/bitable/v1/apps/{}/tables", app_token)
205 }
206 BitableApiV1::TablePatch(app_token, table_id) => {
207 format!(
208 "/open-apis/bitable/v1/apps/{}/tables/{}",
209 app_token, table_id
210 )
211 }
212
213 BitableApiV1::FieldCreate(app_token, table_id) => {
215 format!(
216 "/open-apis/bitable/v1/apps/{}/tables/{}/fields",
217 app_token, table_id
218 )
219 }
220 BitableApiV1::FieldGroupCreate(app_token, table_id) => {
221 format!(
222 "/open-apis/bitable/v1/apps/{}/tables/{}/field_groups",
223 app_token, table_id
224 )
225 }
226 BitableApiV1::FieldUpdate(app_token, table_id, field_id) => {
227 format!(
228 "/open-apis/bitable/v1/apps/{}/tables/{}/fields/{}",
229 app_token, table_id, field_id
230 )
231 }
232 BitableApiV1::FieldDelete(app_token, table_id, field_id) => {
233 format!(
234 "/open-apis/bitable/v1/apps/{}/tables/{}/fields/{}",
235 app_token, table_id, field_id
236 )
237 }
238 BitableApiV1::FieldList(app_token, table_id) => {
239 format!(
240 "/open-apis/bitable/v1/apps/{}/tables/{}/fields",
241 app_token, table_id
242 )
243 }
244
245 BitableApiV1::ViewCreate(app_token, table_id) => {
247 format!(
248 "/open-apis/bitable/v1/apps/{}/tables/{}/views",
249 app_token, table_id
250 )
251 }
252 BitableApiV1::ViewUpdate(app_token, table_id, view_id) => {
253 format!(
254 "/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
255 app_token, table_id, view_id
256 )
257 }
258 BitableApiV1::ViewDelete(app_token, table_id, view_id) => {
259 format!(
260 "/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
261 app_token, table_id, view_id
262 )
263 }
264 BitableApiV1::ViewGet(app_token, table_id, view_id) => {
265 format!(
266 "/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
267 app_token, table_id, view_id
268 )
269 }
270 BitableApiV1::ViewList(app_token, table_id) => {
271 format!(
272 "/open-apis/bitable/v1/apps/{}/tables/{}/views",
273 app_token, table_id
274 )
275 }
276 BitableApiV1::ViewPatch(app_token, table_id, view_id) => {
277 format!(
278 "/open-apis/bitable/v1/apps/{}/tables/{}/views/{}",
279 app_token, table_id, view_id
280 )
281 }
282
283 BitableApiV1::RecordCreate(app_token, table_id) => {
285 format!(
286 "/open-apis/bitable/v1/apps/{}/tables/{}/records",
287 app_token, table_id
288 )
289 }
290 BitableApiV1::RecordBatchCreate(app_token, table_id) => {
291 format!(
292 "/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_create",
293 app_token, table_id
294 )
295 }
296 BitableApiV1::RecordGet(app_token, table_id, record_id) => {
297 format!(
298 "/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
299 app_token, table_id, record_id
300 )
301 }
302 BitableApiV1::RecordBatchGet(app_token, table_id) => {
303 format!(
304 "/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_get",
305 app_token, table_id
306 )
307 }
308 BitableApiV1::RecordUpdate(app_token, table_id, record_id) => {
309 format!(
310 "/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
311 app_token, table_id, record_id
312 )
313 }
314 BitableApiV1::RecordBatchUpdate(app_token, table_id) => {
315 format!(
316 "/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_update",
317 app_token, table_id
318 )
319 }
320 BitableApiV1::RecordDelete(app_token, table_id, record_id) => {
321 format!(
322 "/open-apis/bitable/v1/apps/{}/tables/{}/records/{}",
323 app_token, table_id, record_id
324 )
325 }
326 BitableApiV1::RecordBatchDelete(app_token, table_id) => {
327 format!(
328 "/open-apis/bitable/v1/apps/{}/tables/{}/records/batch_delete",
329 app_token, table_id
330 )
331 }
332 BitableApiV1::RecordList(app_token, table_id) => {
333 format!(
334 "/open-apis/bitable/v1/apps/{}/tables/{}/records",
335 app_token, table_id
336 )
337 }
338 BitableApiV1::RecordSearch(app_token, table_id) => {
339 format!(
340 "/open-apis/bitable/v1/apps/{}/tables/{}/records/search",
341 app_token, table_id
342 )
343 }
344
345 BitableApiV1::FormGet(app_token, table_id, form_id) => {
347 format!(
348 "/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}",
349 app_token, table_id, form_id
350 )
351 }
352 BitableApiV1::FormPatch(app_token, table_id, form_id) => {
353 format!(
354 "/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}",
355 app_token, table_id, form_id
356 )
357 }
358 BitableApiV1::FormUpgrade(app_token, table_id, form_id) => {
359 format!(
360 "/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}/upgrade",
361 app_token, table_id, form_id
362 )
363 }
364 BitableApiV1::FormFieldList(app_token, table_id, form_id) => {
365 format!(
366 "/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}/fields",
367 app_token, table_id, form_id
368 )
369 }
370 BitableApiV1::FormFieldPatch(app_token, table_id, form_id, field_id) => {
371 format!(
372 "/open-apis/bitable/v1/apps/{}/tables/{}/forms/{}/fields/{}",
373 app_token, table_id, form_id, field_id
374 )
375 }
376
377 BitableApiV1::RoleCreate(app_token) => {
379 format!("/open-apis/bitable/v1/apps/{}/roles", app_token)
380 }
381 BitableApiV1::RoleUpdate(app_token, role_id) => {
382 format!("/open-apis/bitable/v1/apps/{}/roles/{}", app_token, role_id)
383 }
384 BitableApiV1::RoleDelete(app_token, role_id) => {
385 format!("/open-apis/bitable/v1/apps/{}/roles/{}", app_token, role_id)
386 }
387 BitableApiV1::RoleList(app_token) => {
388 format!("/open-apis/bitable/v1/apps/{}/roles", app_token)
389 }
390 BitableApiV1::RoleMemberCreate(app_token, role_id) => {
391 format!(
392 "/open-apis/bitable/v1/apps/{}/roles/{}/members",
393 app_token, role_id
394 )
395 }
396 BitableApiV1::RoleMemberBatchCreate(app_token, role_id) => {
397 format!(
398 "/open-apis/bitable/v1/apps/{}/roles/{}/members/batch_create",
399 app_token, role_id
400 )
401 }
402 BitableApiV1::RoleMemberDelete(app_token, role_id, member_id) => {
403 format!(
404 "/open-apis/bitable/v1/apps/{}/roles/{}/members/{}",
405 app_token, role_id, member_id
406 )
407 }
408 BitableApiV1::RoleMemberBatchDelete(app_token, role_id) => {
409 format!(
410 "/open-apis/bitable/v1/apps/{}/roles/{}/members/batch_delete",
411 app_token, role_id
412 )
413 }
414 BitableApiV1::RoleMemberList(app_token, role_id) => {
415 format!(
416 "/open-apis/bitable/v1/apps/{}/roles/{}/members",
417 app_token, role_id
418 )
419 }
420 }
421 }
422}
423
424#[derive(Debug, Clone, PartialEq)]
426pub enum MinutesApiV1 {
427 Get(String),
429 MediaGet(String),
431 TranscriptGet(String),
433 StatisticsGet(String),
435}
436
437impl MinutesApiV1 {
438 pub fn to_url(&self) -> String {
440 match self {
441 MinutesApiV1::Get(minute_token) => {
442 format!("/open-apis/minutes/v1/minutes/{}", minute_token)
443 }
444 MinutesApiV1::MediaGet(minute_token) => {
445 format!("/open-apis/minutes/v1/minutes/{}/media", minute_token)
446 }
447 MinutesApiV1::TranscriptGet(minute_token) => {
448 format!("/open-apis/minutes/v1/minutes/{}/transcript", minute_token)
449 }
450 MinutesApiV1::StatisticsGet(minute_token) => {
451 format!("/open-apis/minutes/v1/minutes/{}/statistics", minute_token)
452 }
453 }
454 }
455}
456
457#[derive(Debug, Clone, PartialEq)]
459pub enum WikiApiV1 {
460 NodeSearch,
462}
463
464impl WikiApiV1 {
465 pub fn to_url(&self) -> String {
467 match self {
468 WikiApiV1::NodeSearch => "/open-apis/wiki/v1/nodes/search".to_string(),
469 }
470 }
471}
472
473#[derive(Debug, Clone, PartialEq)]
475pub enum DocsApiV1 {
476 ContentGet,
478}
479
480impl DocsApiV1 {
481 pub fn to_url(&self) -> String {
483 match self {
484 DocsApiV1::ContentGet => "/open-apis/docs/v1/content".to_string(),
485 }
486 }
487}
488
489#[derive(Debug, Clone, PartialEq)]
491pub enum DocxApiV1 {
492 ChatAnnouncementGet(String),
495 ChatAnnouncementBlockList(String),
497 ChatAnnouncementBlockChildrenCreate(String, String),
499 ChatAnnouncementBlockBatchUpdate(String),
501 ChatAnnouncementBlockGet(String, String),
503 ChatAnnouncementBlockChildrenGet(String, String),
505 ChatAnnouncementBlockChildrenBatchDelete(String, String),
507
508 DocumentCreate,
511 DocumentGet(String),
513 DocumentRawContent(String),
515 DocumentBlockList(String),
517 DocumentBlockChildrenCreate(String, String),
519 DocumentBlockDescendantCreate(String, String),
521 DocumentBlockPatch(String, String),
523 DocumentBlockGet(String, String),
525 DocumentBlockBatchUpdate(String),
527 DocumentBlockChildrenGet(String, String),
529 DocumentBlockChildrenBatchDelete(String, String),
531 DocumentConvert,
533}
534
535impl DocxApiV1 {
536 pub fn to_url(&self) -> String {
538 match self {
539 DocxApiV1::ChatAnnouncementGet(chat_id) => {
541 format!("/open-apis/docx/v1/chats/{}/announcement", chat_id)
542 }
543 DocxApiV1::ChatAnnouncementBlockList(chat_id) => {
544 format!("/open-apis/docx/v1/chats/{}/announcement/blocks", chat_id)
545 }
546 DocxApiV1::ChatAnnouncementBlockChildrenCreate(chat_id, block_id) => {
547 format!(
548 "/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children",
549 chat_id, block_id
550 )
551 }
552 DocxApiV1::ChatAnnouncementBlockBatchUpdate(chat_id) => {
553 format!(
554 "/open-apis/docx/v1/chats/{}/announcement/blocks/batch_update",
555 chat_id
556 )
557 }
558 DocxApiV1::ChatAnnouncementBlockGet(chat_id, block_id) => {
559 format!(
560 "/open-apis/docx/v1/chats/{}/announcement/blocks/{}",
561 chat_id, block_id
562 )
563 }
564 DocxApiV1::ChatAnnouncementBlockChildrenGet(chat_id, block_id) => {
565 format!(
566 "/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children",
567 chat_id, block_id
568 )
569 }
570 DocxApiV1::ChatAnnouncementBlockChildrenBatchDelete(chat_id, block_id) => {
571 format!(
572 "/open-apis/docx/v1/chats/{}/announcement/blocks/{}/children/batch_delete",
573 chat_id, block_id
574 )
575 }
576
577 DocxApiV1::DocumentCreate => "/open-apis/docx/v1/documents".to_string(),
579 DocxApiV1::DocumentGet(document_id) => {
580 format!("/open-apis/docx/v1/documents/{}", document_id)
581 }
582 DocxApiV1::DocumentRawContent(document_id) => {
583 format!("/open-apis/docx/v1/documents/{}/raw_content", document_id)
584 }
585 DocxApiV1::DocumentBlockList(document_id) => {
586 format!("/open-apis/docx/v1/documents/{}/blocks", document_id)
587 }
588 DocxApiV1::DocumentBlockChildrenCreate(document_id, block_id) => {
589 format!(
590 "/open-apis/docx/v1/documents/{}/blocks/{}/children",
591 document_id, block_id
592 )
593 }
594 DocxApiV1::DocumentBlockDescendantCreate(document_id, block_id) => {
595 format!(
596 "/open-apis/docx/v1/documents/{}/blocks/{}/descendant",
597 document_id, block_id
598 )
599 }
600 DocxApiV1::DocumentBlockPatch(document_id, block_id) => {
601 format!(
602 "/open-apis/docx/v1/documents/{}/blocks/{}",
603 document_id, block_id
604 )
605 }
606 DocxApiV1::DocumentBlockGet(document_id, block_id) => {
607 format!(
608 "/open-apis/docx/v1/documents/{}/blocks/{}",
609 document_id, block_id
610 )
611 }
612 DocxApiV1::DocumentBlockBatchUpdate(document_id) => {
613 format!(
614 "/open-apis/docx/v1/documents/{}/blocks/batch_update",
615 document_id
616 )
617 }
618 DocxApiV1::DocumentBlockChildrenGet(document_id, block_id) => {
619 format!(
620 "/open-apis/docx/v1/documents/{}/blocks/{}/children",
621 document_id, block_id
622 )
623 }
624 DocxApiV1::DocumentBlockChildrenBatchDelete(document_id, block_id) => {
625 format!(
626 "/open-apis/docx/v1/documents/{}/blocks/{}/children/batch_delete",
627 document_id, block_id
628 )
629 }
630 DocxApiV1::DocumentConvert => "/open-apis/docx/documents/blocks/convert".to_string(),
632 }
633 }
634}
635
636#[derive(Debug, Clone, PartialEq)]
638pub enum WikiApiV2 {
639 SpaceList,
641 SpaceGet(String),
643 SpaceCreate,
645 SpaceSettingUpdate(String),
647 SpaceGetNode,
649 SpaceNodeList(String),
651 SpaceNodeCreate(String),
653 SpaceMemberList(String),
655 SpaceMemberCreate(String),
657 SpaceMemberDelete(String, String), SpaceNodeMove(String, String),
661 SpaceNodeUpdateTitle(String, String),
663 SpaceNodeCopy(String, String),
665 SpaceNodeMoveDocsToWiki(String),
667 TaskGet(String),
669}
670
671impl WikiApiV2 {
672 pub fn to_url(&self) -> String {
674 match self {
675 WikiApiV2::SpaceList => "/open-apis/wiki/v2/spaces".to_string(),
676 WikiApiV2::SpaceGet(space_id) => {
677 format!("/open-apis/wiki/v2/spaces/{}", space_id)
678 }
679 WikiApiV2::SpaceCreate => "/open-apis/wiki/v2/spaces".to_string(),
680 WikiApiV2::SpaceSettingUpdate(space_id) => {
681 format!("/open-apis/wiki/v2/spaces/{}/setting", space_id)
682 }
683 WikiApiV2::SpaceGetNode => "/open-apis/wiki/v2/spaces/get_node".to_string(),
684 WikiApiV2::SpaceNodeList(space_id) => {
685 format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
686 }
687 WikiApiV2::SpaceNodeCreate(space_id) => {
688 format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
689 }
690 WikiApiV2::SpaceMemberList(space_id) => {
691 format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
692 }
693 WikiApiV2::SpaceMemberCreate(space_id) => {
694 format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
695 }
696 WikiApiV2::SpaceMemberDelete(space_id, member_id) => {
697 format!(
698 "/open-apis/wiki/v2/spaces/{}/members/{}",
699 space_id, member_id
700 )
701 }
702 WikiApiV2::SpaceNodeMove(space_id, node_token) => {
703 format!(
704 "/open-apis/wiki/v2/spaces/{}/nodes/{}/move",
705 space_id, node_token
706 )
707 }
708 WikiApiV2::SpaceNodeUpdateTitle(space_id, node_token) => {
709 format!(
710 "/open-apis/wiki/v2/spaces/{}/nodes/{}/update_title",
711 space_id, node_token
712 )
713 }
714 WikiApiV2::SpaceNodeCopy(space_id, node_token) => {
715 format!(
716 "/open-apis/wiki/v2/spaces/{}/nodes/{}/copy",
717 space_id, node_token
718 )
719 }
720 WikiApiV2::SpaceNodeMoveDocsToWiki(space_id) => {
721 format!(
722 "/open-apis/wiki/v2/spaces/{}/nodes/move_docs_to_wiki",
723 space_id
724 )
725 }
726 WikiApiV2::TaskGet(task_id) => {
727 format!("/open-apis/wiki/v2/tasks/{}", task_id)
728 }
729 }
730 }
731}
732
733#[derive(Debug, Clone, PartialEq)]
736pub enum CcmDocApiOld {
737 Create,
739 Meta(String), SheetMeta(String), RawContent(String), Content(String), BatchUpdate(String), }
750
751impl CcmDocApiOld {
752 pub fn to_url(&self) -> String {
754 match self {
755 CcmDocApiOld::Create => "/open-apis/doc/v2/create".to_string(),
756 CcmDocApiOld::Meta(doc_token) => {
757 format!("/open-apis/doc/v2/meta/{}", doc_token)
758 }
759 CcmDocApiOld::SheetMeta(doc_token) => {
760 format!("/open-apis/doc/v2/{}/sheet_meta", doc_token)
761 }
762 CcmDocApiOld::RawContent(doc_token) => {
763 format!("/open-apis/doc/v2/{}/raw_content", doc_token)
764 }
765 CcmDocApiOld::Content(doc_token) => {
766 format!("/open-apis/doc/v2/{}/content", doc_token)
767 }
768 CcmDocApiOld::BatchUpdate(doc_token) => {
769 format!("/open-apis/doc/v2/{}/batch_update", doc_token)
770 }
771 }
772 }
773}
774
775#[derive(Debug, Clone, PartialEq)]
778pub enum CcmDocsApiOld {
779 SearchObject,
781 Meta,
783}
784
785impl CcmDocsApiOld {
786 pub fn to_url(&self) -> String {
788 match self {
789 CcmDocsApiOld::SearchObject => "/open-apis/suite/docs-api/search/object".to_string(),
790 CcmDocsApiOld::Meta => "/open-apis/suite/docs-api/meta".to_string(),
791 }
792 }
793}
794
795#[derive(Debug, Clone, PartialEq)]
798pub enum CcmDriveExplorerApiOld {
799 RootFolderMeta,
801 FolderMeta(String), File(String), FileSpreadsheets(String), FileCopy(String), FileDocs(String), FolderChildren(String), Folder(String), }
816
817impl CcmDriveExplorerApiOld {
818 pub fn to_url(&self) -> String {
820 match self {
821 CcmDriveExplorerApiOld::RootFolderMeta => {
822 "/open-apis/drive/explorer/v2/root_folder/meta".to_string()
823 }
824 CcmDriveExplorerApiOld::FolderMeta(folder_token) => {
825 format!("/open-apis/drive/explorer/v2/folder/{}/meta", folder_token)
826 }
827 CcmDriveExplorerApiOld::File(folder_token) => {
828 format!("/open-apis/drive/explorer/v2/file/{}", folder_token)
829 }
830 CcmDriveExplorerApiOld::FileSpreadsheets(spreadsheet_token) => {
831 format!(
832 "/open-apis/drive/explorer/v2/file/spreadsheets/{}",
833 spreadsheet_token
834 )
835 }
836 CcmDriveExplorerApiOld::FileCopy(file_token) => {
837 format!(
838 "/open-apis/drive/explorer/v2/file/copy/files/{}",
839 file_token
840 )
841 }
842 CcmDriveExplorerApiOld::FileDocs(doc_token) => {
843 format!("/open-apis/drive/explorer/v2/file/docs/{}", doc_token)
844 }
845 CcmDriveExplorerApiOld::FolderChildren(folder_token) => {
846 format!(
847 "/open-apis/drive/explorer/v2/folder/{}/children",
848 folder_token
849 )
850 }
851 CcmDriveExplorerApiOld::Folder(folder_token) => {
852 format!("/open-apis/drive/explorer/v2/folder/{}", folder_token)
853 }
854 }
855 }
856}
857
858#[derive(Debug, Clone, PartialEq)]
861pub enum CcmDriveExplorerApi {
862 RootFolderMeta,
864 FolderMeta(String), File(String), FileCopy(String), FileDocs(String), FileSpreadsheets(String), FolderChildren(String), Folder,
878}
879
880impl CcmDriveExplorerApi {
881 pub fn to_url(&self) -> String {
883 match self {
884 CcmDriveExplorerApi::RootFolderMeta => {
885 "/open-apis/drive/v1/explorer/root_folder/meta".to_string()
886 }
887 CcmDriveExplorerApi::FolderMeta(folder_token) => {
888 format!("/open-apis/drive/v1/explorer/folder/{}/meta", folder_token)
889 }
890 CcmDriveExplorerApi::File(file_token) => {
891 format!("/open-apis/drive/v1/explorer/file/{}", file_token)
892 }
893 CcmDriveExplorerApi::FileCopy(file_token) => {
894 format!(
895 "/open-apis/drive/v1/explorer/file/copy/files/{}",
896 file_token
897 )
898 }
899 CcmDriveExplorerApi::FileDocs(file_token) => {
900 format!("/open-apis/drive/v1/explorer/file/docs/{}", file_token)
901 }
902 CcmDriveExplorerApi::FileSpreadsheets(file_token) => {
903 format!(
904 "/open-apis/drive/v1/explorer/file/spreadsheets/{}",
905 file_token
906 )
907 }
908 CcmDriveExplorerApi::FolderChildren(folder_token) => {
909 format!(
910 "/open-apis/drive/v1/explorer/folder/{}/children",
911 folder_token
912 )
913 }
914 CcmDriveExplorerApi::Folder => "/open-apis/drive/v1/explorer/folder".to_string(),
915 }
916 }
917
918 pub fn to_url_with_params(&self, params: &[(&str, String)]) -> String {
920 let base_url = self.to_url();
921 if params.is_empty() {
922 return base_url;
923 }
924
925 let query_string = params
926 .iter()
927 .map(|(key, value)| format!("{}={}", key, simple_url_encode(value)))
928 .collect::<Vec<_>>()
929 .join("&");
930
931 format!("{}?{}", base_url, query_string)
932 }
933}
934
935fn simple_url_encode(input: &str) -> String {
937 input
938 .chars()
939 .map(|c| match c {
940 'A'..='Z' | 'a'..='z' | '0'..='9' | '-' | '_' | '.' | '~' => c.to_string(),
941 _ => format!("%{:02X}", c as u8),
942 })
943 .collect()
944}
945
946#[derive(Debug, Clone, PartialEq)]
949pub enum PermissionApi {
950 MemberPermitted,
952 MemberTransfer,
954 Public,
956}
957
958impl PermissionApi {
959 pub fn to_url(&self) -> String {
961 match self {
962 PermissionApi::MemberPermitted => {
963 "/open-apis/drive/v1/permission/member/permitted".to_string()
964 }
965 PermissionApi::MemberTransfer => {
966 "/open-apis/drive/v1/permission/member/transfer".to_string()
967 }
968 PermissionApi::Public => "/open-apis/drive/v1/permission/v2/public/".to_string(),
969 }
970 }
971}
972
973#[derive(Debug, Clone, PartialEq)]
976pub enum PermissionApiOld {
977 MemberPermitted,
979 MemberTransfer,
981 Public,
983}
984
985impl PermissionApiOld {
986 pub fn to_url(&self) -> String {
988 match self {
989 PermissionApiOld::MemberPermitted => {
990 "/open-apis/drive/v1/permission/member/permitted".to_string()
991 }
992 PermissionApiOld::MemberTransfer => {
993 "/open-apis/drive/v1/permission/member/transfer".to_string()
994 }
995 PermissionApiOld::Public => "/open-apis/drive/v1/permission/v2/public/".to_string(),
996 }
997 }
998}
999
1000#[derive(Debug, Clone, PartialEq)]
1003pub enum CcmSheetApiOld {
1004 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,
1052 ImportResult,
1054 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,
1086 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), }
1145
1146impl CcmSheetApiOld {
1147 pub fn to_url(&self) -> String {
1149 match self {
1150 CcmSheetApiOld::OperateSheets(spreadsheet_token) => {
1151 format!(
1152 "/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
1153 spreadsheet_token
1154 )
1155 }
1156 CcmSheetApiOld::UpdateSheetProperties(spreadsheet_token) => {
1157 format!(
1158 "/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
1159 spreadsheet_token
1160 )
1161 }
1162 CcmSheetApiOld::Style(spreadsheet_token) => {
1163 format!(
1164 "/open-apis/sheets/v2/spreadsheets/{}/style",
1165 spreadsheet_token
1166 )
1167 }
1168 CcmSheetApiOld::StylesBatchUpdate(spreadsheet_token) => {
1169 format!(
1170 "/open-apis/sheets/v2/spreadsheets/{}/styles_batch_update",
1171 spreadsheet_token
1172 )
1173 }
1174 CcmSheetApiOld::ValuesPrepend(spreadsheet_token) => {
1175 format!(
1176 "/open-apis/sheets/v2/spreadsheets/{}/values_prepend",
1177 spreadsheet_token
1178 )
1179 }
1180 CcmSheetApiOld::ValuesAppend(spreadsheet_token) => {
1181 format!(
1182 "/open-apis/sheets/v2/spreadsheets/{}/values_append",
1183 spreadsheet_token
1184 )
1185 }
1186 CcmSheetApiOld::ValuesImage(spreadsheet_token) => {
1187 format!(
1188 "/open-apis/sheets/v2/spreadsheets/{}/values_image",
1189 spreadsheet_token
1190 )
1191 }
1192 CcmSheetApiOld::ValuesRange(spreadsheet_token, range) => {
1193 format!(
1194 "/open-apis/sheets/v2/spreadsheets/{}/values/{}",
1195 spreadsheet_token, range
1196 )
1197 }
1198 CcmSheetApiOld::ValuesBatchGet(spreadsheet_token) => {
1199 format!(
1200 "/open-apis/sheets/v2/spreadsheets/{}/values_batch_get",
1201 spreadsheet_token
1202 )
1203 }
1204 CcmSheetApiOld::Values(spreadsheet_token) => {
1205 format!(
1206 "/open-apis/sheets/v2/spreadsheets/{}/values",
1207 spreadsheet_token
1208 )
1209 }
1210 CcmSheetApiOld::ValuesBatchUpdate(spreadsheet_token) => {
1211 format!(
1212 "/open-apis/sheets/v2/spreadsheets/{}/values_batch_update",
1213 spreadsheet_token
1214 )
1215 }
1216 CcmSheetApiOld::DimensionRange(spreadsheet_token) => {
1217 format!(
1218 "/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
1219 spreadsheet_token
1220 )
1221 }
1222 CcmSheetApiOld::InsertDimensionRange(spreadsheet_token) => {
1223 format!(
1224 "/open-apis/sheets/v2/spreadsheets/{}/insert_dimension_range",
1225 spreadsheet_token
1226 )
1227 }
1228 CcmSheetApiOld::DimensionRangeUpdate(spreadsheet_token) => {
1229 format!(
1230 "/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
1231 spreadsheet_token
1232 )
1233 }
1234 CcmSheetApiOld::DimensionRangeDelete(spreadsheet_token) => {
1235 format!(
1236 "/open-apis/sheets/v2/spreadsheets/{}/dimension_range",
1237 spreadsheet_token
1238 )
1239 }
1240 CcmSheetApiOld::MergeCells(spreadsheet_token) => {
1241 format!(
1242 "/open-apis/sheets/v2/spreadsheets/{}/merge_cells",
1243 spreadsheet_token
1244 )
1245 }
1246 CcmSheetApiOld::UnmergeCells(spreadsheet_token) => {
1247 format!(
1248 "/open-apis/sheets/v2/spreadsheets/{}/unmerge_cells",
1249 spreadsheet_token
1250 )
1251 }
1252 CcmSheetApiOld::ProtectedDimension(spreadsheet_token) => {
1253 format!(
1254 "/open-apis/sheets/v2/spreadsheets/{}/protected_dimension",
1255 spreadsheet_token
1256 )
1257 }
1258 CcmSheetApiOld::ProtectedRangeBatchUpdate(spreadsheet_token) => {
1259 format!(
1260 "/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_update",
1261 spreadsheet_token
1262 )
1263 }
1264 CcmSheetApiOld::ProtectedRangeBatchGet(spreadsheet_token) => {
1265 format!(
1266 "/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_get",
1267 spreadsheet_token
1268 )
1269 }
1270 CcmSheetApiOld::ProtectedRangeBatchDel(spreadsheet_token) => {
1271 format!(
1272 "/open-apis/sheets/v2/spreadsheets/{}/protected_range_batch_del",
1273 spreadsheet_token
1274 )
1275 }
1276 CcmSheetApiOld::Metainfo(spreadsheet_token) => {
1277 format!(
1278 "/open-apis/sheets/v2/spreadsheets/{}/metainfo",
1279 spreadsheet_token
1280 )
1281 }
1282 CcmSheetApiOld::Properties(spreadsheet_token) => {
1283 format!(
1284 "/open-apis/sheets/v2/spreadsheets/{}/properties",
1285 spreadsheet_token
1286 )
1287 }
1288 CcmSheetApiOld::Import => "/open-apis/sheets/v2/import".to_string(),
1289 CcmSheetApiOld::ImportResult => "/open-apis/sheets/v2/import/result".to_string(),
1290 CcmSheetApiOld::ConditionFormats(spreadsheet_token) => {
1291 format!(
1292 "/open-apis/sheets/v2/spreadsheets/{}/condition_formats",
1293 spreadsheet_token
1294 )
1295 }
1296 CcmSheetApiOld::ConditionFormatsBatchCreate(spreadsheet_token) => {
1297 format!(
1298 "/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_create",
1299 spreadsheet_token
1300 )
1301 }
1302 CcmSheetApiOld::ConditionFormatsBatchDelete(spreadsheet_token) => {
1303 format!(
1304 "/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_delete",
1305 spreadsheet_token
1306 )
1307 }
1308 CcmSheetApiOld::ConditionFormatsBatchUpdate(spreadsheet_token) => {
1309 format!(
1310 "/open-apis/sheets/v2/spreadsheets/{}/condition_formats/batch_update",
1311 spreadsheet_token
1312 )
1313 }
1314 CcmSheetApiOld::DataValidation(spreadsheet_token) => {
1315 format!(
1316 "/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
1317 spreadsheet_token
1318 )
1319 }
1320 CcmSheetApiOld::DataValidationCreate(spreadsheet_token) => {
1321 format!(
1322 "/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
1323 spreadsheet_token
1324 )
1325 }
1326 CcmSheetApiOld::DataValidationUpdate(spreadsheet_token, sheet_id) => {
1327 format!(
1328 "/open-apis/sheets/v2/spreadsheets/{}/dataValidation/{}",
1329 spreadsheet_token, sheet_id
1330 )
1331 }
1332 CcmSheetApiOld::DataValidationDelete(spreadsheet_token) => {
1333 format!(
1334 "/open-apis/sheets/v2/spreadsheets/{}/dataValidation",
1335 spreadsheet_token
1336 )
1337 }
1338 CcmSheetApiOld::ReadSingleRange(spreadsheet_token, range) => {
1339 format!(
1340 "/open-apis/sheets/v2/spreadsheets/{}/values/{}",
1341 spreadsheet_token, range
1342 )
1343 }
1344 CcmSheetApiOld::ReadMultipleRanges(spreadsheet_token) => {
1345 format!(
1346 "/open-apis/sheets/v2/spreadsheets/{}/values_batch_get",
1347 spreadsheet_token
1348 )
1349 }
1350 CcmSheetApiOld::WriteSingleRange(spreadsheet_token) => {
1351 format!(
1352 "/open-apis/sheets/v2/spreadsheets/{}/values",
1353 spreadsheet_token
1354 )
1355 }
1356 CcmSheetApiOld::BatchWriteRanges(spreadsheet_token) => {
1357 format!(
1358 "/open-apis/sheets/v2/spreadsheets/{}/values_batch_update",
1359 spreadsheet_token
1360 )
1361 }
1362 CcmSheetApiOld::AppendValues(spreadsheet_token) => {
1363 format!(
1364 "/open-apis/sheets/v2/spreadsheets/{}/values_append",
1365 spreadsheet_token
1366 )
1367 }
1368 CcmSheetApiOld::InsertValues(spreadsheet_token) => {
1369 format!(
1370 "/open-apis/sheets/v2/spreadsheets/{}/values_prepend",
1371 spreadsheet_token
1372 )
1373 }
1374 CcmSheetApiOld::GetSpreadsheet(spreadsheet_token) => {
1375 format!("/open-apis/sheets/v3/spreadsheets/{}", spreadsheet_token)
1376 }
1377 CcmSheetApiOld::CreateSpreadsheet => "/open-apis/sheets/v3/spreadsheets".to_string(),
1378 CcmSheetApiOld::UpdateSpreadsheet(spreadsheet_token) => {
1379 format!("/open-apis/sheets/v3/spreadsheets/{}", spreadsheet_token)
1380 }
1381 CcmSheetApiOld::AddSheet(spreadsheet_token) => {
1382 format!(
1383 "/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
1384 spreadsheet_token
1385 )
1386 }
1387 CcmSheetApiOld::GetSheet(spreadsheet_token, sheet_id) => {
1388 format!(
1389 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}",
1390 spreadsheet_token, sheet_id
1391 )
1392 }
1393 CcmSheetApiOld::UpdateSheet(spreadsheet_token) => {
1394 format!(
1395 "/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
1396 spreadsheet_token
1397 )
1398 }
1399 CcmSheetApiOld::DeleteSheet(spreadsheet_token) => {
1400 format!(
1401 "/open-apis/sheets/v2/spreadsheets/{}/sheets_batch_update",
1402 spreadsheet_token
1403 )
1404 }
1405 CcmSheetApiOld::CreateFilter(spreadsheet_token) => {
1406 format!(
1407 "/open-apis/sheets/v3/spreadsheets/{}/filterViews",
1408 spreadsheet_token
1409 )
1410 }
1411 CcmSheetApiOld::GetFilter(spreadsheet_token) => {
1412 format!(
1413 "/open-apis/sheets/v3/spreadsheets/{}/filterViews/query",
1414 spreadsheet_token
1415 )
1416 }
1417 CcmSheetApiOld::UpdateFilter(spreadsheet_token) => {
1418 format!(
1419 "/open-apis/sheets/v3/spreadsheets/{}/filterViews",
1420 spreadsheet_token
1421 )
1422 }
1423 CcmSheetApiOld::DeleteFilter(spreadsheet_token) => {
1424 format!(
1425 "/open-apis/sheets/v3/spreadsheets/{}/filterViews",
1426 spreadsheet_token
1427 )
1428 }
1429 CcmSheetApiOld::CreateFilterView(spreadsheet_token, sheet_id) => {
1430 format!(
1431 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views",
1432 spreadsheet_token, sheet_id
1433 )
1434 }
1435 CcmSheetApiOld::UpdateFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
1436 format!(
1437 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
1438 spreadsheet_token, sheet_id, filter_view_id
1439 )
1440 }
1441 CcmSheetApiOld::QueryFilterViews(spreadsheet_token, sheet_id) => {
1442 format!(
1443 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/query",
1444 spreadsheet_token, sheet_id
1445 )
1446 }
1447 CcmSheetApiOld::GetFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
1448 format!(
1449 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
1450 spreadsheet_token, sheet_id, filter_view_id
1451 )
1452 }
1453 CcmSheetApiOld::DeleteFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
1454 format!(
1455 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
1456 spreadsheet_token, sheet_id, filter_view_id
1457 )
1458 }
1459 CcmSheetApiOld::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
1460 format!(
1461 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions",
1462 spreadsheet_token, sheet_id, filter_view_id
1463 )
1464 }
1465 CcmSheetApiOld::UpdateFilterCondition(
1466 spreadsheet_token,
1467 sheet_id,
1468 filter_view_id,
1469 condition_id,
1470 ) => {
1471 format!(
1472 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
1473 spreadsheet_token, sheet_id, filter_view_id, condition_id
1474 )
1475 }
1476 CcmSheetApiOld::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
1477 format!("/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/query", spreadsheet_token, sheet_id, filter_view_id)
1478 }
1479 CcmSheetApiOld::GetFilterCondition(
1480 spreadsheet_token,
1481 sheet_id,
1482 filter_view_id,
1483 condition_id,
1484 ) => {
1485 format!(
1486 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
1487 spreadsheet_token, sheet_id, filter_view_id, condition_id
1488 )
1489 }
1490 CcmSheetApiOld::DeleteFilterCondition(
1491 spreadsheet_token,
1492 sheet_id,
1493 filter_view_id,
1494 condition_id,
1495 ) => {
1496 format!(
1497 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
1498 spreadsheet_token, sheet_id, filter_view_id, condition_id
1499 )
1500 }
1501 CcmSheetApiOld::CreateFloatImage(spreadsheet_token, sheet_id) => {
1502 format!(
1503 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images",
1504 spreadsheet_token, sheet_id
1505 )
1506 }
1507 CcmSheetApiOld::UpdateFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
1508 format!(
1509 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
1510 spreadsheet_token, sheet_id, float_image_id
1511 )
1512 }
1513 CcmSheetApiOld::GetFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
1514 format!(
1515 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
1516 spreadsheet_token, sheet_id, float_image_id
1517 )
1518 }
1519 CcmSheetApiOld::QueryFloatImages(spreadsheet_token, sheet_id) => {
1520 format!(
1521 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/query",
1522 spreadsheet_token, sheet_id
1523 )
1524 }
1525 CcmSheetApiOld::DeleteFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
1526 format!(
1527 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
1528 spreadsheet_token, sheet_id, float_image_id
1529 )
1530 }
1531 CcmSheetApiOld::DeleteRange(spreadsheet_token) => {
1532 format!(
1533 "/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/delete",
1534 spreadsheet_token
1535 )
1536 }
1537 CcmSheetApiOld::InsertDimension(spreadsheet_token) => {
1538 format!(
1539 "/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/insert",
1540 spreadsheet_token
1541 )
1542 }
1543 CcmSheetApiOld::MoveDimension(spreadsheet_token) => {
1544 format!(
1545 "/open-apis/sheets/v3/spreadsheets/{}/dimensionRange/move",
1546 spreadsheet_token
1547 )
1548 }
1549 CcmSheetApiOld::ReplaceRange(spreadsheet_token) => {
1550 format!(
1551 "/open-apis/sheets/v3/spreadsheets/{}/values/batchReplace",
1552 spreadsheet_token
1553 )
1554 }
1555 CcmSheetApiOld::FindReplace(spreadsheet_token) => {
1556 format!(
1557 "/open-apis/sheets/v3/spreadsheets/{}/values/batchFindReplace",
1558 spreadsheet_token
1559 )
1560 }
1561 }
1562 }
1563}
1564
1565#[derive(Debug, Clone, PartialEq)]
1567pub enum DriveApi {
1568 ListFiles,
1571 CreateFolder,
1573 TaskCheck,
1575 BatchQueryMetas,
1577 GetFileStatistics(String), ListFileViewRecords(String), CopyFile(String), MoveFile(String), DeleteFile(String), CreateShortcut,
1589 UploadFile,
1591 UploadPrepare,
1593 UploadPart,
1595 UploadFinish,
1597 DownloadFile(String), CreateImportTask,
1601 GetImportTask(String), CreateExportTask,
1605 GetExportTask(String), DownloadExportFile(String), UploadMedia,
1611 UploadMediaPrepare,
1613 UploadMediaPart,
1615 UploadMediaFinish,
1617 DownloadMedia(String), GetMediaTempDownloadUrls,
1621 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,
1693 MediaUploadTask(String), CreateMediaShareLink(String), GetPublicPassword(String), }
1700
1701impl DriveApi {
1702 pub fn to_url(&self) -> String {
1704 match self {
1705 DriveApi::ListFiles => "/open-apis/drive/v1/files".to_string(),
1707 DriveApi::CreateFolder => "/open-apis/drive/v1/files/create_folder".to_string(),
1708 DriveApi::TaskCheck => "/open-apis/drive/v1/files/task_check".to_string(),
1709 DriveApi::BatchQueryMetas => "/open-apis/drive/v1/metas/batch_query".to_string(),
1710 DriveApi::GetFileStatistics(file_token) => {
1711 format!("/open-apis/drive/v1/files/{}/statistics", file_token)
1712 }
1713 DriveApi::ListFileViewRecords(file_token) => {
1714 format!("/open-apis/drive/v1/files/{}/view_records", file_token)
1715 }
1716 DriveApi::CopyFile(file_token) => {
1717 format!("/open-apis/drive/v1/files/{}/copy", file_token)
1718 }
1719 DriveApi::MoveFile(file_token) => {
1720 format!("/open-apis/drive/v1/files/{}/move", file_token)
1721 }
1722 DriveApi::DeleteFile(file_token) => {
1723 format!("/open-apis/drive/v1/files/{}", file_token)
1724 }
1725 DriveApi::CreateShortcut => "/open-apis/drive/v1/files/create_shortcut".to_string(),
1726 DriveApi::UploadFile => "/open-apis/drive/v1/files/upload_all".to_string(),
1727 DriveApi::UploadPrepare => "/open-apis/drive/v1/files/upload_prepare".to_string(),
1728 DriveApi::UploadPart => "/open-apis/drive/v1/files/upload_part".to_string(),
1729 DriveApi::UploadFinish => "/open-apis/drive/v1/files/upload_finish".to_string(),
1730 DriveApi::DownloadFile(file_token) => {
1731 format!("/open-apis/drive/v1/files/{}/download", file_token)
1732 }
1733
1734 DriveApi::CreateImportTask => "/open-apis/drive/v1/import_tasks".to_string(),
1736 DriveApi::GetImportTask(ticket) => {
1737 format!("/open-apis/drive/v1/import_tasks/{}", ticket)
1738 }
1739 DriveApi::CreateExportTask => "/open-apis/drive/v1/export_tasks".to_string(),
1740 DriveApi::GetExportTask(ticket) => {
1741 format!("/open-apis/drive/v1/export_tasks/{}", ticket)
1742 }
1743 DriveApi::DownloadExportFile(file_token) => {
1744 format!(
1745 "/open-apis/drive/v1/export_tasks/file/{}/download",
1746 file_token
1747 )
1748 }
1749
1750 DriveApi::UploadMedia => "/open-apis/drive/v1/medias/upload_all".to_string(),
1752 DriveApi::UploadMediaPrepare => "/open-apis/drive/v1/medias/upload_prepare".to_string(),
1753 DriveApi::UploadMediaPart => "/open-apis/drive/v1/medias/upload_part".to_string(),
1754 DriveApi::UploadMediaFinish => "/open-apis/drive/v1/medias/upload_finish".to_string(),
1755 DriveApi::DownloadMedia(file_token) => {
1756 format!("/open-apis/drive/v1/medias/{}/download", file_token)
1757 }
1758 DriveApi::GetMediaTempDownloadUrls => {
1759 "/open-apis/drive/v1/medias/batch_get_tmp_download_url".to_string()
1760 }
1761
1762 DriveApi::CreateFileVersion(file_token) => {
1764 format!("/open-apis/drive/v1/files/{}/versions", file_token)
1765 }
1766 DriveApi::ListFileVersions(file_token) => {
1767 format!("/open-apis/drive/v1/files/{}/versions", file_token)
1768 }
1769 DriveApi::GetFileVersion(file_token, version_id) => {
1770 format!(
1771 "/open-apis/drive/v1/files/{}/versions/{}",
1772 file_token, version_id
1773 )
1774 }
1775 DriveApi::DeleteFileVersion(file_token, version_id) => {
1776 format!(
1777 "/open-apis/drive/v1/files/{}/versions/{}",
1778 file_token, version_id
1779 )
1780 }
1781
1782 DriveApi::SubscribeFile(file_token) => {
1784 format!("/open-apis/drive/v1/files/{}/subscribe", file_token)
1785 }
1786 DriveApi::GetFileSubscribe(file_token) => {
1787 format!("/open-apis/drive/v1/files/{}/get_subscribe", file_token)
1788 }
1789 DriveApi::DeleteFileSubscribe(file_token) => {
1790 format!("/open-apis/drive/v1/files/{}/delete_subscribe", file_token)
1791 }
1792
1793 DriveApi::CreatePermissionMember(token) => {
1795 format!("/open-apis/drive/v1/permissions/{}/members", token)
1796 }
1797 DriveApi::BatchCreatePermissionMember(token) => {
1798 format!(
1799 "/open-apis/drive/v1/permissions/{}/members/batch_create",
1800 token
1801 )
1802 }
1803 DriveApi::UpdatePermissionMember(token, member_id) => {
1804 format!(
1805 "/open-apis/drive/v1/permissions/{}/members/{}",
1806 token, member_id
1807 )
1808 }
1809 DriveApi::ListPermissionMembers(token) => {
1810 format!("/open-apis/drive/v1/permissions/{}/members", token)
1811 }
1812 DriveApi::DeletePermissionMember(token, member_id) => {
1813 format!(
1814 "/open-apis/drive/v1/permissions/{}/members/{}",
1815 token, member_id
1816 )
1817 }
1818 DriveApi::TransferOwner(token) => {
1819 format!(
1820 "/open-apis/drive/v1/permissions/{}/members/transfer_owner",
1821 token
1822 )
1823 }
1824 DriveApi::AuthPermissionMember(token) => {
1825 format!("/open-apis/drive/v1/permissions/{}/members/auth", token)
1826 }
1827
1828 DriveApi::UpdatePublicPermission(token) => {
1830 format!("/open-apis/drive/v1/permissions/{}/public", token)
1831 }
1832 DriveApi::GetPublicPermission(token) => {
1833 format!("/open-apis/drive/v1/permissions/{}/public", token)
1834 }
1835 DriveApi::CreatePublicPassword(token) => {
1836 format!("/open-apis/drive/v1/permissions/{}/public/password", token)
1837 }
1838 DriveApi::UpdatePublicPassword(token) => {
1839 format!("/open-apis/drive/v1/permissions/{}/public/password", token)
1840 }
1841 DriveApi::DeletePublicPassword(token) => {
1842 format!("/open-apis/drive/v1/permissions/{}/public/password", token)
1843 }
1844
1845 DriveApi::ListFileComments(file_token) => {
1847 format!("/open-apis/drive/v1/files/{}/comments", file_token)
1848 }
1849 DriveApi::BatchQueryComments(file_token) => {
1850 format!(
1851 "/open-apis/drive/v1/files/{}/comments/batch_query",
1852 file_token
1853 )
1854 }
1855 DriveApi::PatchComment(file_token, comment_id) => {
1856 format!(
1857 "/open-apis/drive/v1/files/{}/comments/{}",
1858 file_token, comment_id
1859 )
1860 }
1861 DriveApi::CreateComment(file_token) => {
1862 format!("/open-apis/drive/v1/files/{}/comments", file_token)
1863 }
1864 DriveApi::GetComment(file_token, comment_id) => {
1865 format!(
1866 "/open-apis/drive/v1/files/{}/comments/{}",
1867 file_token, comment_id
1868 )
1869 }
1870 DriveApi::ListCommentReplies(file_token, comment_id) => {
1871 format!(
1872 "/open-apis/drive/v1/files/{}/comments/{}/replies",
1873 file_token, comment_id
1874 )
1875 }
1876 DriveApi::UpdateCommentReply(file_token, comment_id, reply_id) => {
1877 format!(
1878 "/open-apis/drive/v1/files/{}/comments/{}/replies/{}",
1879 file_token, comment_id, reply_id
1880 )
1881 }
1882 DriveApi::DeleteCommentReply(file_token, comment_id, reply_id) => {
1883 format!(
1884 "/open-apis/drive/v1/files/{}/comments/{}/replies/{}",
1885 file_token, comment_id, reply_id
1886 )
1887 }
1888
1889 DriveApi::GetFileSubscription(file_token, subscription_id) => {
1891 format!(
1892 "/open-apis/drive/v1/files/{}/subscriptions/{}",
1893 file_token, subscription_id
1894 )
1895 }
1896 DriveApi::CreateFileSubscription(file_token) => {
1897 format!("/open-apis/drive/v1/files/{}/subscriptions", file_token)
1898 }
1899 DriveApi::UpdateFileSubscription(file_token, subscription_id) => {
1900 format!(
1901 "/open-apis/drive/v1/files/{}/subscriptions/{}",
1902 file_token, subscription_id
1903 )
1904 }
1905
1906 DriveApi::ListFileLikes(file_token) => {
1908 format!("/open-apis/drive/v2/files/{}/likes", file_token)
1909 }
1910 DriveApi::GetPublicPermissionV2(token) => {
1911 format!("/open-apis/drive/v2/permissions/{}/public", token)
1912 }
1913 DriveApi::UpdatePublicPermissionV2(token) => {
1914 format!("/open-apis/drive/v2/permissions/{}/public", token)
1915 }
1916
1917 DriveApi::MediaUploadTasks => "/open-apis/drive/v1/medias/upload_tasks".to_string(),
1919 DriveApi::MediaUploadTask(task_id) => {
1920 format!("/open-apis/drive/v1/medias/upload_tasks/{}", task_id)
1921 }
1922 DriveApi::CreateMediaShareLink(file_token) => {
1923 format!("/open-apis/drive/v1/medias/{}/share_link", file_token)
1924 }
1925 DriveApi::GetPublicPassword(file_token) => {
1926 format!("/open-apis/drive/v1/publics/{}/password", file_token)
1927 }
1928 }
1929 }
1930}
1931
1932#[derive(Debug, Clone, PartialEq)]
1934pub enum WikiApi {
1935 ListSpaces,
1938 GetSpace,
1940 CreateSpace,
1942
1943 ListSpaceMembers(String), CreateSpaceMember(String), DeleteSpaceMember(String, String), UpdateSpaceSetting(String), CreateSpaceNode(String), GetSpaceNode,
1960 ListSpaceNodes,
1962 MoveSpaceNode(String, String), UpdateSpaceNodeTitle(String, String), CopySpaceNode(String, String), MoveDocsToWiki(String), GetTask(String), SearchNodes,
1978}
1979
1980impl WikiApi {
1981 pub fn to_url(&self) -> String {
1983 match self {
1984 WikiApi::ListSpaces => "/open-apis/wiki/v2/spaces".to_string(),
1986 WikiApi::GetSpace => "/open-apis/wiki/v2/spaces/get_node".to_string(),
1987 WikiApi::CreateSpace => "/open-apis/wiki/v2/spaces".to_string(),
1988
1989 WikiApi::ListSpaceMembers(space_id) => {
1991 format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
1992 }
1993 WikiApi::CreateSpaceMember(space_id) => {
1994 format!("/open-apis/wiki/v2/spaces/{}/members", space_id)
1995 }
1996 WikiApi::DeleteSpaceMember(space_id, member_id) => {
1997 format!(
1998 "/open-apis/wiki/v2/spaces/{}/members/{}",
1999 space_id, member_id
2000 )
2001 }
2002
2003 WikiApi::UpdateSpaceSetting(space_id) => {
2005 format!("/open-apis/wiki/v2/spaces/{}/setting", space_id)
2006 }
2007
2008 WikiApi::CreateSpaceNode(space_id) => {
2010 format!("/open-apis/wiki/v2/spaces/{}/nodes", space_id)
2011 }
2012 WikiApi::GetSpaceNode => "/open-apis/wiki/v2/spaces/get_node".to_string(),
2013 WikiApi::ListSpaceNodes => "/open-apis/wiki/v2/space.node/list".to_string(),
2014 WikiApi::MoveSpaceNode(space_id, node_token) => {
2015 format!(
2016 "/open-apis/wiki/v2/spaces/{}/nodes/{}/move",
2017 space_id, node_token
2018 )
2019 }
2020 WikiApi::UpdateSpaceNodeTitle(space_id, node_token) => {
2021 format!(
2022 "/open-apis/wiki/v2/spaces/{}/nodes/{}/update_title",
2023 space_id, node_token
2024 )
2025 }
2026 WikiApi::CopySpaceNode(space_id, node_token) => {
2027 format!(
2028 "/open-apis/wiki/v2/spaces/{}/nodes/{}/copy",
2029 space_id, node_token
2030 )
2031 }
2032 WikiApi::MoveDocsToWiki(space_id) => {
2033 format!(
2034 "/open-apis/wiki/v2/spaces/{}/nodes/move_docs_to_wiki",
2035 space_id
2036 )
2037 }
2038
2039 WikiApi::GetTask(task_id) => {
2041 format!("/open-apis/wiki/v2/tasks/{}", task_id)
2042 }
2043
2044 WikiApi::SearchNodes => "/open-apis/wiki/v1/nodes/search".to_string(),
2046 }
2047 }
2048}
2049
2050#[derive(Debug, Clone, PartialEq)]
2053pub enum SheetsApiV3 {
2054 CreateSpreadsheet,
2059 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), }
2132
2133impl SheetsApiV3 {
2134 pub fn to_url(&self) -> String {
2136 match self {
2137 SheetsApiV3::CreateSpreadsheet => "/open-apis/sheets/v3/spreadsheets".to_string(),
2138 SheetsApiV3::GetSpreadsheet(spreadsheet_token) => {
2139 format!("/open-apis/sheets/v3/spreadsheets/{}", spreadsheet_token)
2140 }
2141 SheetsApiV3::PatchSpreadsheet(spreadsheet_token) => {
2142 format!("/open-apis/sheets/v3/spreadsheets/{}", spreadsheet_token)
2143 }
2144
2145 SheetsApiV3::QuerySheets(spreadsheet_token) => format!(
2146 "/open-apis/sheets/v3/spreadsheets/{}/sheets/query",
2147 spreadsheet_token
2148 ),
2149 SheetsApiV3::GetSheet(spreadsheet_token, sheet_id) => format!(
2150 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}",
2151 spreadsheet_token, sheet_id
2152 ),
2153 SheetsApiV3::MoveDimension(spreadsheet_token, sheet_id) => format!(
2154 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/move_dimension",
2155 spreadsheet_token, sheet_id
2156 ),
2157 SheetsApiV3::FindCells(spreadsheet_token, sheet_id) => format!(
2158 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/find",
2159 spreadsheet_token, sheet_id
2160 ),
2161 SheetsApiV3::ReplaceCells(spreadsheet_token, sheet_id) => format!(
2162 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/replace",
2163 spreadsheet_token, sheet_id
2164 ),
2165
2166 SheetsApiV3::CreateFilter(spreadsheet_token, sheet_id)
2167 | SheetsApiV3::UpdateFilter(spreadsheet_token, sheet_id)
2168 | SheetsApiV3::GetFilter(spreadsheet_token, sheet_id)
2169 | SheetsApiV3::DeleteFilter(spreadsheet_token, sheet_id) => format!(
2170 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter",
2171 spreadsheet_token, sheet_id
2172 ),
2173
2174 SheetsApiV3::CreateFilterView(spreadsheet_token, sheet_id) => format!(
2175 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views",
2176 spreadsheet_token, sheet_id
2177 ),
2178 SheetsApiV3::QueryFilterViews(spreadsheet_token, sheet_id) => format!(
2179 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/query",
2180 spreadsheet_token, sheet_id
2181 ),
2182 SheetsApiV3::GetFilterView(spreadsheet_token, sheet_id, filter_view_id)
2183 | SheetsApiV3::PatchFilterView(spreadsheet_token, sheet_id, filter_view_id)
2184 | SheetsApiV3::DeleteFilterView(spreadsheet_token, sheet_id, filter_view_id) => {
2185 format!(
2186 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}",
2187 spreadsheet_token, sheet_id, filter_view_id
2188 )
2189 }
2190
2191 SheetsApiV3::CreateFilterCondition(spreadsheet_token, sheet_id, filter_view_id) => {
2192 format!(
2193 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions",
2194 spreadsheet_token, sheet_id, filter_view_id
2195 )
2196 }
2197 SheetsApiV3::QueryFilterConditions(spreadsheet_token, sheet_id, filter_view_id) => {
2198 format!(
2199 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/query",
2200 spreadsheet_token, sheet_id, filter_view_id
2201 )
2202 }
2203 SheetsApiV3::GetFilterCondition(
2204 spreadsheet_token,
2205 sheet_id,
2206 filter_view_id,
2207 condition_id,
2208 )
2209 | SheetsApiV3::UpdateFilterCondition(
2210 spreadsheet_token,
2211 sheet_id,
2212 filter_view_id,
2213 condition_id,
2214 )
2215 | SheetsApiV3::DeleteFilterCondition(
2216 spreadsheet_token,
2217 sheet_id,
2218 filter_view_id,
2219 condition_id,
2220 ) => format!(
2221 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}",
2222 spreadsheet_token, sheet_id, filter_view_id, condition_id
2223 ),
2224
2225 SheetsApiV3::CreateFloatImage(spreadsheet_token, sheet_id) => format!(
2226 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images",
2227 spreadsheet_token, sheet_id
2228 ),
2229 SheetsApiV3::QueryFloatImages(spreadsheet_token, sheet_id) => format!(
2230 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/query",
2231 spreadsheet_token, sheet_id
2232 ),
2233 SheetsApiV3::GetFloatImage(spreadsheet_token, sheet_id, float_image_id)
2234 | SheetsApiV3::PatchFloatImage(spreadsheet_token, sheet_id, float_image_id)
2235 | SheetsApiV3::DeleteFloatImage(spreadsheet_token, sheet_id, float_image_id) => {
2236 format!(
2237 "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}",
2238 spreadsheet_token, sheet_id, float_image_id
2239 )
2240 }
2241 }
2242 }
2243}
2244
2245pub const SHEETS_API_V3: &str = "/open-apis/sheets/v3";
2247
2248#[derive(Debug, Clone, PartialEq)]
2254pub enum BaikeApiV1 {
2255 DraftCreate,
2257 DraftUpdate(String), EntityCreate,
2261 EntityUpdate(String), EntityGet(String), EntityDelete(String), EntityList,
2265 EntityMatch,
2266 EntitySearch,
2267 EntityHighlight,
2268 EntityExtract,
2269
2270 ClassificationList,
2272
2273 FileUpload,
2275 FileDownload(String), }
2277
2278impl BaikeApiV1 {
2279 pub fn to_url(&self) -> String {
2280 match self {
2281 BaikeApiV1::DraftCreate => "/open-apis/baike/v1/drafts".to_string(),
2282 BaikeApiV1::DraftUpdate(draft_id) => {
2283 format!("/open-apis/baike/v1/drafts/{}", draft_id)
2284 }
2285 BaikeApiV1::EntityCreate => "/open-apis/baike/v1/entities".to_string(),
2286 BaikeApiV1::EntityUpdate(entity_id) => {
2287 format!("/open-apis/baike/v1/entities/{}", entity_id)
2288 }
2289 BaikeApiV1::EntityGet(entity_id) => {
2290 format!("/open-apis/baike/v1/entities/{}", entity_id)
2291 }
2292 BaikeApiV1::EntityDelete(entity_id) => {
2293 format!("/open-apis/baike/v1/entities/{}", entity_id)
2294 }
2295 BaikeApiV1::EntityList => "/open-apis/baike/v1/entities".to_string(),
2296 BaikeApiV1::EntityMatch => "/open-apis/baike/v1/entities/match".to_string(),
2297 BaikeApiV1::EntitySearch => "/open-apis/baike/v1/entities/search".to_string(),
2298 BaikeApiV1::EntityHighlight => "/open-apis/baike/v1/entities/highlight".to_string(),
2299 BaikeApiV1::EntityExtract => "/open-apis/baike/v1/entities/extract".to_string(),
2300 BaikeApiV1::ClassificationList => "/open-apis/baike/v1/classifications".to_string(),
2301 BaikeApiV1::FileUpload => "/open-apis/baike/v1/files/upload".to_string(),
2302 BaikeApiV1::FileDownload(file_token) => {
2303 format!("/open-apis/baike/v1/files/{}/download", file_token)
2304 }
2305 }
2306 }
2307}
2308
2309pub const BAIKE_API_V1: &str = "/open-apis/baike/v1";
2311
2312#[derive(Debug, Clone, PartialEq)]
2318pub enum LingoApiV1 {
2319 DraftCreate,
2321 DraftUpdate(String), EntityCreate,
2325 EntityUpdate(String), EntityDelete(String), EntityGet(String), EntityList,
2329 EntityMatch,
2330 EntitySearch,
2331 EntityHighlight,
2332 EntityBatchGet,
2333 EntityBatchUpdate,
2334 EntitySearchRecommend,
2335 EntityHistoryGet(String), EntityHistoryList,
2337
2338 ClassificationList,
2340
2341 RepoList,
2343
2344 FileUpload,
2346 FileDownload(String), GenerateSummary,
2350 ExtractKeywords,
2351 TranslateText,
2352}
2353
2354impl LingoApiV1 {
2355 pub fn to_url(&self) -> String {
2356 match self {
2357 LingoApiV1::DraftCreate => "/open-apis/lingo/v1/drafts".to_string(),
2358 LingoApiV1::DraftUpdate(draft_id) => {
2359 format!("/open-apis/lingo/v1/drafts/{}", draft_id)
2360 }
2361 LingoApiV1::EntityCreate => "/open-apis/lingo/v1/entities".to_string(),
2362 LingoApiV1::EntityUpdate(entity_id) => {
2363 format!("/open-apis/lingo/v1/entities/{}", entity_id)
2364 }
2365 LingoApiV1::EntityDelete(entity_id) => {
2366 format!("/open-apis/lingo/v1/entities/{}", entity_id)
2367 }
2368 LingoApiV1::EntityGet(entity_id) => {
2369 format!("/open-apis/lingo/v1/entities/{}", entity_id)
2370 }
2371 LingoApiV1::EntityList => "/open-apis/lingo/v1/entities".to_string(),
2372 LingoApiV1::EntityMatch => "/open-apis/lingo/v1/entities/match".to_string(),
2373 LingoApiV1::EntitySearch => "/open-apis/lingo/v1/entities/search".to_string(),
2374 LingoApiV1::EntityHighlight => "/open-apis/lingo/v1/entities/highlight".to_string(),
2375 LingoApiV1::EntityBatchGet => "/open-apis/lingo/v1/entities:batchGet".to_string(),
2376 LingoApiV1::EntityBatchUpdate => "/open-apis/lingo/v1/entities:batchUpdate".to_string(),
2377 LingoApiV1::EntitySearchRecommend => {
2378 "/open-apis/lingo/v1/entities:searchRecommend".to_string()
2379 }
2380 LingoApiV1::EntityHistoryGet(entity_id) => {
2381 format!("/open-apis/lingo/v1/entities/{}/history", entity_id)
2382 }
2383 LingoApiV1::EntityHistoryList => "/open-apis/lingo/v1/entityHistory".to_string(),
2384 LingoApiV1::ClassificationList => "/open-apis/lingo/v1/classifications".to_string(),
2385 LingoApiV1::RepoList => "/open-apis/lingo/v1/repos".to_string(),
2386 LingoApiV1::FileUpload => "/open-apis/lingo/v1/files/upload".to_string(),
2387 LingoApiV1::FileDownload(file_token) => {
2388 format!("/open-apis/lingo/v1/files/{}/download", file_token)
2389 }
2390 LingoApiV1::GenerateSummary => "/open-apis/lingo/v1/text:generateSummary".to_string(),
2391 LingoApiV1::ExtractKeywords => "/open-apis/lingo/v1/text:extractKeywords".to_string(),
2392 LingoApiV1::TranslateText => "/open-apis/lingo/v1/text:translate".to_string(),
2393 }
2394 }
2395}
2396
2397pub const LINGO_API_V1: &str = "/open-apis/lingo/v1";
2399
2400#[cfg(test)]
2401mod tests {
2402 use super::*;
2403
2404 #[test]
2406 fn test_base_api_v2_role_create() {
2407 let endpoint = BaseApiV2::RoleCreate("app_token_123".to_string());
2408 assert_eq!(
2409 endpoint.to_url(),
2410 "/open-apis/base/v2/apps/app_token_123/roles"
2411 );
2412 }
2413
2414 #[test]
2415 fn test_base_api_v2_role_update() {
2416 let endpoint =
2417 BaseApiV2::RoleUpdate("app_token_123".to_string(), "role_id_456".to_string());
2418 assert_eq!(
2419 endpoint.to_url(),
2420 "/open-apis/base/v2/apps/app_token_123/roles/role_id_456"
2421 );
2422 }
2423
2424 #[test]
2425 fn test_base_api_v2_role_list() {
2426 let endpoint = BaseApiV2::RoleList("app_token_123".to_string());
2427 assert_eq!(
2428 endpoint.to_url(),
2429 "/open-apis/base/v2/apps/app_token_123/roles"
2430 );
2431 }
2432
2433 #[test]
2434 fn test_base_api_v2_with_special_chars() {
2435 let endpoint = BaseApiV2::RoleCreate("app-token_123".to_string());
2436 assert!(endpoint.to_url().contains("app-token_123"));
2437 }
2438
2439 #[test]
2441 fn test_bitable_api_v1_app_create() {
2442 let endpoint = BitableApiV1::AppCreate;
2443 assert_eq!(endpoint.to_url(), "/open-apis/bitable/v1/apps");
2444 }
2445
2446 #[test]
2447 fn test_bitable_api_v1_app_copy() {
2448 let endpoint = BitableApiV1::AppCopy("app_token_123".to_string());
2449 assert_eq!(
2450 endpoint.to_url(),
2451 "/open-apis/bitable/v1/apps/app_token_123/copy"
2452 );
2453 }
2454
2455 #[test]
2456 fn test_bitable_api_v1_table_create() {
2457 let endpoint = BitableApiV1::TableCreate("app_token_123".to_string());
2458 assert_eq!(
2459 endpoint.to_url(),
2460 "/open-apis/bitable/v1/apps/app_token_123/tables"
2461 );
2462 }
2463
2464 #[test]
2465 fn test_bitable_api_v1_record_create() {
2466 let endpoint =
2467 BitableApiV1::RecordCreate("app_token_123".to_string(), "table_id_456".to_string());
2468 assert_eq!(
2469 endpoint.to_url(),
2470 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/records"
2471 );
2472 }
2473
2474 #[test]
2475 fn test_bitable_api_v1_field_create() {
2476 let endpoint =
2477 BitableApiV1::FieldCreate("app_token_123".to_string(), "table_id_456".to_string());
2478 assert_eq!(
2479 endpoint.to_url(),
2480 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/fields"
2481 );
2482 }
2483
2484 #[test]
2485 fn test_bitable_api_v1_block_workflow_list() {
2486 let endpoint = BitableApiV1::BlockWorkflowList("app_token_123".to_string());
2487 assert_eq!(
2488 endpoint.to_url(),
2489 "/open-apis/bitable/v1/apps/app_token_123/block_workflows"
2490 );
2491 }
2492
2493 #[test]
2494 fn test_bitable_api_v1_field_group_create() {
2495 let endpoint =
2496 BitableApiV1::FieldGroupCreate("app_token_123".to_string(), "table_id_456".to_string());
2497 assert_eq!(
2498 endpoint.to_url(),
2499 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/field_groups"
2500 );
2501 }
2502
2503 #[test]
2504 fn test_bitable_api_v1_form_upgrade() {
2505 let endpoint = BitableApiV1::FormUpgrade(
2506 "app_token_123".to_string(),
2507 "table_id_456".to_string(),
2508 "form_id_789".to_string(),
2509 );
2510 assert_eq!(
2511 endpoint.to_url(),
2512 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/forms/form_id_789/upgrade"
2513 );
2514 }
2515
2516 #[test]
2517 fn test_bitable_api_v1_view_create() {
2518 let endpoint =
2519 BitableApiV1::ViewCreate("app_token_123".to_string(), "table_id_456".to_string());
2520 assert_eq!(
2521 endpoint.to_url(),
2522 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/views"
2523 );
2524 }
2525
2526 #[test]
2527 fn test_bitable_api_v1_form_get() {
2528 let endpoint = BitableApiV1::FormGet(
2529 "app_token_123".to_string(),
2530 "table_id_456".to_string(),
2531 "form_id_789".to_string(),
2532 );
2533 assert_eq!(
2534 endpoint.to_url(),
2535 "/open-apis/bitable/v1/apps/app_token_123/tables/table_id_456/forms/form_id_789"
2536 );
2537 }
2538
2539 #[test]
2540 fn test_bitable_api_v1_role_member_create() {
2541 let endpoint =
2542 BitableApiV1::RoleMemberCreate("app_token_123".to_string(), "role_id_456".to_string());
2543 assert_eq!(
2544 endpoint.to_url(),
2545 "/open-apis/bitable/v1/apps/app_token_123/roles/role_id_456/members"
2546 );
2547 }
2548
2549 #[test]
2550 fn test_bitable_api_v1_batch_operations() {
2551 let endpoint = BitableApiV1::TableBatchCreate("app_token_123".to_string());
2552 assert!(endpoint.to_url().contains("batch_create"));
2553
2554 let endpoint = BitableApiV1::RecordBatchDelete(
2555 "app_token_123".to_string(),
2556 "table_id_456".to_string(),
2557 );
2558 assert!(endpoint.to_url().contains("batch_delete"));
2559 }
2560
2561 #[test]
2563 fn test_minutes_api_v1_get() {
2564 let endpoint = MinutesApiV1::Get("minute_token_123".to_string());
2565 assert_eq!(
2566 endpoint.to_url(),
2567 "/open-apis/minutes/v1/minutes/minute_token_123"
2568 );
2569 }
2570
2571 #[test]
2572 fn test_minutes_api_v1_media_get() {
2573 let endpoint = MinutesApiV1::MediaGet("minute_token_123".to_string());
2574 assert_eq!(
2575 endpoint.to_url(),
2576 "/open-apis/minutes/v1/minutes/minute_token_123/media"
2577 );
2578 }
2579
2580 #[test]
2581 fn test_minutes_api_v1_transcript_get() {
2582 let endpoint = MinutesApiV1::TranscriptGet("minute_token_123".to_string());
2583 assert_eq!(
2584 endpoint.to_url(),
2585 "/open-apis/minutes/v1/minutes/minute_token_123/transcript"
2586 );
2587 }
2588
2589 #[test]
2590 fn test_minutes_api_v1_statistics_get() {
2591 let endpoint = MinutesApiV1::StatisticsGet("minute_token_123".to_string());
2592 assert_eq!(
2593 endpoint.to_url(),
2594 "/open-apis/minutes/v1/minutes/minute_token_123/statistics"
2595 );
2596 }
2597
2598 #[test]
2600 fn test_wiki_api_v1_node_search() {
2601 let endpoint = WikiApiV1::NodeSearch;
2602 assert_eq!(endpoint.to_url(), "/open-apis/wiki/v1/nodes/search");
2603 }
2604
2605 #[test]
2607 fn test_docs_api_v1_content_get() {
2608 let endpoint = DocsApiV1::ContentGet;
2609 assert_eq!(endpoint.to_url(), "/open-apis/docs/v1/content");
2610 }
2611
2612 #[test]
2614 fn test_docx_api_v1_document_create() {
2615 let endpoint = DocxApiV1::DocumentCreate;
2616 assert_eq!(endpoint.to_url(), "/open-apis/docx/v1/documents");
2617 }
2618
2619 #[test]
2620 fn test_docx_api_v1_document_get() {
2621 let endpoint = DocxApiV1::DocumentGet("doc_id_123".to_string());
2622 assert_eq!(endpoint.to_url(), "/open-apis/docx/v1/documents/doc_id_123");
2623 }
2624
2625 #[test]
2626 fn test_docx_api_v1_document_block_list() {
2627 let endpoint = DocxApiV1::DocumentBlockList("doc_id_123".to_string());
2628 assert_eq!(
2629 endpoint.to_url(),
2630 "/open-apis/docx/v1/documents/doc_id_123/blocks"
2631 );
2632 }
2633
2634 #[test]
2635 fn test_docx_api_v1_chat_announcement_get() {
2636 let endpoint = DocxApiV1::ChatAnnouncementGet("chat_id_123".to_string());
2637 assert_eq!(
2638 endpoint.to_url(),
2639 "/open-apis/docx/v1/chats/chat_id_123/announcement"
2640 );
2641 }
2642
2643 #[test]
2644 fn test_docx_api_v1_document_convert() {
2645 let endpoint = DocxApiV1::DocumentConvert;
2646 assert_eq!(
2647 endpoint.to_url(),
2648 "/open-apis/docx/documents/blocks/convert"
2649 );
2650 }
2651
2652 #[test]
2653 fn test_docx_api_v1_document_block_children_create() {
2654 let endpoint = DocxApiV1::DocumentBlockChildrenCreate(
2655 "doc_id_123".to_string(),
2656 "block_id_456".to_string(),
2657 );
2658 assert_eq!(
2659 endpoint.to_url(),
2660 "/open-apis/docx/v1/documents/doc_id_123/blocks/block_id_456/children"
2661 );
2662 }
2663
2664 #[test]
2666 fn test_wiki_api_v2_space_list() {
2667 let endpoint = WikiApiV2::SpaceList;
2668 assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces");
2669 }
2670
2671 #[test]
2672 fn test_wiki_api_v2_space_get() {
2673 let endpoint = WikiApiV2::SpaceGet("space_id_123".to_string());
2674 assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces/space_id_123");
2675 }
2676
2677 #[test]
2678 fn test_wiki_api_v2_space_create() {
2679 let endpoint = WikiApiV2::SpaceCreate;
2680 assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/spaces");
2681 }
2682
2683 #[test]
2684 fn test_wiki_api_v2_space_node_list() {
2685 let endpoint = WikiApiV2::SpaceNodeList("space_id_123".to_string());
2686 assert_eq!(
2687 endpoint.to_url(),
2688 "/open-apis/wiki/v2/spaces/space_id_123/nodes"
2689 );
2690 }
2691
2692 #[test]
2693 fn test_wiki_api_v2_space_member_delete() {
2694 let endpoint =
2695 WikiApiV2::SpaceMemberDelete("space_id_123".to_string(), "member_id_456".to_string());
2696 assert_eq!(
2697 endpoint.to_url(),
2698 "/open-apis/wiki/v2/spaces/space_id_123/members/member_id_456"
2699 );
2700 }
2701
2702 #[test]
2703 fn test_wiki_api_v2_task_get() {
2704 let endpoint = WikiApiV2::TaskGet("task_id_123".to_string());
2705 assert_eq!(endpoint.to_url(), "/open-apis/wiki/v2/tasks/task_id_123");
2706 }
2707
2708 #[test]
2710 fn test_ccm_doc_api_old_create() {
2711 let endpoint = CcmDocApiOld::Create;
2712 assert_eq!(endpoint.to_url(), "/open-apis/doc/v2/create");
2713 }
2714
2715 #[test]
2716 fn test_ccm_doc_api_old_meta() {
2717 let endpoint = CcmDocApiOld::Meta("doc_token_123".to_string());
2718 assert_eq!(endpoint.to_url(), "/open-apis/doc/v2/meta/doc_token_123");
2719 }
2720
2721 #[test]
2722 fn test_ccm_doc_api_old_raw_content() {
2723 let endpoint = CcmDocApiOld::RawContent("doc_token_123".to_string());
2724 assert_eq!(
2725 endpoint.to_url(),
2726 "/open-apis/doc/v2/doc_token_123/raw_content"
2727 );
2728 }
2729
2730 #[test]
2731 fn test_ccm_doc_api_old_batch_update() {
2732 let endpoint = CcmDocApiOld::BatchUpdate("doc_token_123".to_string());
2733 assert_eq!(
2734 endpoint.to_url(),
2735 "/open-apis/doc/v2/doc_token_123/batch_update"
2736 );
2737 }
2738
2739 #[test]
2741 fn test_ccm_docs_api_old_search_object() {
2742 let endpoint = CcmDocsApiOld::SearchObject;
2743 assert_eq!(endpoint.to_url(), "/open-apis/suite/docs-api/search/object");
2744 }
2745
2746 #[test]
2747 fn test_ccm_docs_api_old_meta() {
2748 let endpoint = CcmDocsApiOld::Meta;
2749 assert_eq!(endpoint.to_url(), "/open-apis/suite/docs-api/meta");
2750 }
2751
2752 #[test]
2754 fn test_ccm_drive_explorer_api_old_root_folder_meta() {
2755 let endpoint = CcmDriveExplorerApiOld::RootFolderMeta;
2756 assert_eq!(
2757 endpoint.to_url(),
2758 "/open-apis/drive/explorer/v2/root_folder/meta"
2759 );
2760 }
2761
2762 #[test]
2763 fn test_ccm_drive_explorer_api_old_folder_meta() {
2764 let endpoint = CcmDriveExplorerApiOld::FolderMeta("folder_token_123".to_string());
2765 assert_eq!(
2766 endpoint.to_url(),
2767 "/open-apis/drive/explorer/v2/folder/folder_token_123/meta"
2768 );
2769 }
2770
2771 #[test]
2772 fn test_ccm_drive_explorer_api_old_file_copy() {
2773 let endpoint = CcmDriveExplorerApiOld::FileCopy("file_token_123".to_string());
2774 assert_eq!(
2775 endpoint.to_url(),
2776 "/open-apis/drive/explorer/v2/file/copy/files/file_token_123"
2777 );
2778 }
2779
2780 #[test]
2782 fn test_ccm_drive_explorer_api_root_folder_meta() {
2783 let endpoint = CcmDriveExplorerApi::RootFolderMeta;
2784 assert_eq!(
2785 endpoint.to_url(),
2786 "/open-apis/drive/v1/explorer/root_folder/meta"
2787 );
2788 }
2789
2790 #[test]
2791 fn test_ccm_drive_explorer_api_folder_meta() {
2792 let endpoint = CcmDriveExplorerApi::FolderMeta("folder_token_123".to_string());
2793 assert_eq!(
2794 endpoint.to_url(),
2795 "/open-apis/drive/v1/explorer/folder/folder_token_123/meta"
2796 );
2797 }
2798
2799 #[test]
2800 fn test_ccm_drive_explorer_api_folder() {
2801 let endpoint = CcmDriveExplorerApi::Folder;
2802 assert_eq!(endpoint.to_url(), "/open-apis/drive/v1/explorer/folder");
2803 }
2804
2805 #[test]
2806 fn test_ccm_drive_explorer_api_to_url_with_params() {
2807 let endpoint = CcmDriveExplorerApi::RootFolderMeta;
2808 let params = vec![("key", "value".to_string())];
2809 let url = endpoint.to_url_with_params(¶ms);
2810 assert!(url.contains("?"));
2811 assert!(url.contains("key=value"));
2812 }
2813
2814 #[test]
2815 fn test_ccm_drive_explorer_api_to_url_with_empty_params() {
2816 let endpoint = CcmDriveExplorerApi::RootFolderMeta;
2817 let params: Vec<(&str, String)> = vec![];
2818 let url = endpoint.to_url_with_params(¶ms);
2819 assert!(!url.contains("?"));
2820 }
2821
2822 #[test]
2823 fn test_ccm_drive_explorer_api_to_url_with_special_chars() {
2824 let endpoint = CcmDriveExplorerApi::RootFolderMeta;
2825 let params = vec![("query", "hello world".to_string())];
2826 let url = endpoint.to_url_with_params(¶ms);
2827 assert!(url.contains("%20"));
2828 }
2829
2830 #[test]
2832 fn test_permission_api_member_permitted() {
2833 let endpoint = PermissionApi::MemberPermitted;
2834 assert_eq!(
2835 endpoint.to_url(),
2836 "/open-apis/drive/v1/permission/member/permitted"
2837 );
2838 }
2839
2840 #[test]
2841 fn test_permission_api_member_transfer() {
2842 let endpoint = PermissionApi::MemberTransfer;
2843 assert_eq!(
2844 endpoint.to_url(),
2845 "/open-apis/drive/v1/permission/member/transfer"
2846 );
2847 }
2848
2849 #[test]
2850 fn test_permission_api_public() {
2851 let endpoint = PermissionApi::Public;
2852 assert_eq!(
2853 endpoint.to_url(),
2854 "/open-apis/drive/v1/permission/v2/public/"
2855 );
2856 }
2857
2858 #[test]
2860 fn test_permission_api_old_member_permitted() {
2861 let endpoint = PermissionApiOld::MemberPermitted;
2862 assert_eq!(
2863 endpoint.to_url(),
2864 "/open-apis/drive/v1/permission/member/permitted"
2865 );
2866 }
2867
2868 #[test]
2869 fn test_permission_api_old_public() {
2870 let endpoint = PermissionApiOld::Public;
2871 assert_eq!(
2872 endpoint.to_url(),
2873 "/open-apis/drive/v1/permission/v2/public/"
2874 );
2875 }
2876}