92 lines
5.2 KiB
Rust
92 lines
5.2 KiB
Rust
pub mod collaboration;
|
|
pub mod handlers;
|
|
pub mod ooxml;
|
|
pub mod storage;
|
|
pub mod types;
|
|
pub mod utils;
|
|
|
|
use crate::shared::state::AppState;
|
|
use axum::{
|
|
routing::{get, post},
|
|
Router,
|
|
};
|
|
use std::sync::Arc;
|
|
|
|
pub use collaboration::handle_docs_websocket;
|
|
pub use handlers::{
|
|
handle_accept_reject_all, handle_accept_reject_change, handle_add_comment, handle_add_endnote,
|
|
handle_add_footnote, handle_ai_custom, handle_ai_expand, handle_ai_improve, handle_ai_simplify,
|
|
handle_ai_summarize, handle_ai_translate, handle_apply_style, handle_autosave,
|
|
handle_compare_documents, handle_create_style, handle_delete_comment, handle_delete_document,
|
|
handle_delete_endnote, handle_delete_footnote, handle_delete_style, handle_docs_ai,
|
|
handle_docs_get_by_id, handle_docs_save, handle_enable_track_changes, handle_export_docx,
|
|
handle_export_html, handle_export_md, handle_export_pdf, handle_export_txt,
|
|
handle_generate_toc, handle_get_document, handle_get_outline, handle_import_document,
|
|
handle_list_comments, handle_list_documents, handle_list_endnotes, handle_list_footnotes,
|
|
handle_list_styles, handle_list_track_changes, handle_new_document, handle_reply_comment,
|
|
handle_resolve_comment, handle_save_document, handle_search_documents, handle_template_blank,
|
|
handle_template_letter, handle_template_meeting, handle_template_report, handle_update_endnote,
|
|
handle_update_footnote, handle_update_style, handle_update_toc,
|
|
};
|
|
pub use types::{
|
|
AiRequest, AiResponse, Collaborator, CollabMessage, CommentReply, ComparisonSummary, Document,
|
|
DocumentComment, DocumentComparison, DocumentDiff, DocumentMetadata, DocumentStyle, Endnote,
|
|
Footnote, OutlineItem, SaveRequest, SaveResponse, SearchQuery, TableOfContents, TocEntry,
|
|
TrackChange,
|
|
};
|
|
|
|
pub fn configure_docs_routes() -> Router<Arc<AppState>> {
|
|
Router::new()
|
|
.route("/api/docs/list", get(handle_list_documents))
|
|
.route("/api/docs/search", get(handle_search_documents))
|
|
.route("/api/docs/load", get(handle_get_document))
|
|
.route("/api/docs/save", post(handle_docs_save))
|
|
.route("/api/docs/autosave", post(handle_autosave))
|
|
.route("/api/docs/delete", post(handle_delete_document))
|
|
.route("/api/docs/new", get(handle_new_document))
|
|
.route("/api/docs/ai", post(handle_docs_ai))
|
|
.route("/api/docs/:id", get(handle_docs_get_by_id))
|
|
.route("/api/docs/template/blank", get(handle_template_blank))
|
|
.route("/api/docs/template/meeting", get(handle_template_meeting))
|
|
.route("/api/docs/template/report", get(handle_template_report))
|
|
.route("/api/docs/template/letter", get(handle_template_letter))
|
|
.route("/api/docs/ai/summarize", post(handle_ai_summarize))
|
|
.route("/api/docs/ai/expand", post(handle_ai_expand))
|
|
.route("/api/docs/ai/improve", post(handle_ai_improve))
|
|
.route("/api/docs/ai/simplify", post(handle_ai_simplify))
|
|
.route("/api/docs/ai/translate", post(handle_ai_translate))
|
|
.route("/api/docs/ai/custom", post(handle_ai_custom))
|
|
.route("/api/docs/export/pdf", get(handle_export_pdf))
|
|
.route("/api/docs/export/docx", get(handle_export_docx))
|
|
.route("/api/docs/export/md", get(handle_export_md))
|
|
.route("/api/docs/export/html", get(handle_export_html))
|
|
.route("/api/docs/export/txt", get(handle_export_txt))
|
|
.route("/api/docs/import", post(handle_import_document))
|
|
.route("/api/docs/comment", post(handle_add_comment))
|
|
.route("/api/docs/comment/reply", post(handle_reply_comment))
|
|
.route("/api/docs/comment/resolve", post(handle_resolve_comment))
|
|
.route("/api/docs/comment/delete", post(handle_delete_comment))
|
|
.route("/api/docs/comments", get(handle_list_comments))
|
|
.route("/api/docs/track-changes/enable", post(handle_enable_track_changes))
|
|
.route("/api/docs/track-changes/accept-reject", post(handle_accept_reject_change))
|
|
.route("/api/docs/track-changes/accept-reject-all", post(handle_accept_reject_all))
|
|
.route("/api/docs/track-changes", get(handle_list_track_changes))
|
|
.route("/api/docs/toc/generate", post(handle_generate_toc))
|
|
.route("/api/docs/toc/update", post(handle_update_toc))
|
|
.route("/api/docs/footnote", post(handle_add_footnote))
|
|
.route("/api/docs/footnote/update", post(handle_update_footnote))
|
|
.route("/api/docs/footnote/delete", post(handle_delete_footnote))
|
|
.route("/api/docs/footnotes", get(handle_list_footnotes))
|
|
.route("/api/docs/endnote", post(handle_add_endnote))
|
|
.route("/api/docs/endnote/update", post(handle_update_endnote))
|
|
.route("/api/docs/endnote/delete", post(handle_delete_endnote))
|
|
.route("/api/docs/endnotes", get(handle_list_endnotes))
|
|
.route("/api/docs/style", post(handle_create_style))
|
|
.route("/api/docs/style/update", post(handle_update_style))
|
|
.route("/api/docs/style/delete", post(handle_delete_style))
|
|
.route("/api/docs/style/apply", post(handle_apply_style))
|
|
.route("/api/docs/styles", get(handle_list_styles))
|
|
.route("/api/docs/outline", post(handle_get_outline))
|
|
.route("/api/docs/compare", post(handle_compare_documents))
|
|
.route("/ws/docs/:doc_id", get(handle_docs_websocket))
|
|
}
|