Skip to main content

text_document_editing/
document_editing_controller.rs

1// Generated by Qleany v1.4.8 from feature_controller.tera
2
3use crate::CreateListDto;
4use crate::CreateListResultDto;
5use crate::DeleteTextDto;
6use crate::DeleteTextResultDto;
7use crate::InsertBlockDto;
8use crate::InsertBlockResultDto;
9use crate::InsertFormattedTextDto;
10use crate::InsertFormattedTextResultDto;
11use crate::InsertFragmentDto;
12use crate::InsertFragmentResultDto;
13use crate::InsertFrameDto;
14use crate::InsertFrameResultDto;
15use crate::InsertHtmlAtPositionDto;
16use crate::InsertHtmlAtPositionResultDto;
17use crate::InsertImageDto;
18use crate::InsertImageResultDto;
19use crate::InsertListDto;
20use crate::InsertListResultDto;
21use crate::InsertMarkdownAtPositionDto;
22use crate::InsertMarkdownAtPositionResultDto;
23use crate::InsertTextDto;
24use crate::InsertTextResultDto;
25use crate::units_of_work::create_list_uow::CreateListUnitOfWorkFactory;
26use crate::units_of_work::delete_text_uow::DeleteTextUnitOfWorkFactory;
27use crate::units_of_work::insert_block_uow::InsertBlockUnitOfWorkFactory;
28use crate::units_of_work::insert_formatted_text_uow::InsertFormattedTextUnitOfWorkFactory;
29use crate::units_of_work::insert_fragment_uow::InsertFragmentUnitOfWorkFactory;
30use crate::units_of_work::insert_frame_uow::InsertFrameUnitOfWorkFactory;
31use crate::units_of_work::insert_html_at_position_uow::InsertHtmlAtPositionUnitOfWorkFactory;
32use crate::units_of_work::insert_image_uow::InsertImageUnitOfWorkFactory;
33use crate::units_of_work::insert_list_uow::InsertListUnitOfWorkFactory;
34use crate::units_of_work::insert_markdown_at_position_uow::InsertMarkdownAtPositionUnitOfWorkFactory;
35use crate::units_of_work::insert_text_uow::InsertTextUnitOfWorkFactory;
36use crate::use_cases::create_list_uc::CreateListUseCase;
37use crate::use_cases::delete_text_uc::DeleteTextUseCase;
38use crate::use_cases::insert_block_uc::InsertBlockUseCase;
39use crate::use_cases::insert_formatted_text_uc::InsertFormattedTextUseCase;
40use crate::use_cases::insert_fragment_uc::InsertFragmentUseCase;
41use crate::use_cases::insert_frame_uc::InsertFrameUseCase;
42use crate::use_cases::insert_html_at_position_uc::InsertHtmlAtPositionUseCase;
43use crate::use_cases::insert_image_uc::InsertImageUseCase;
44use crate::use_cases::insert_list_uc::InsertListUseCase;
45use crate::use_cases::insert_markdown_at_position_uc::InsertMarkdownAtPositionUseCase;
46use crate::use_cases::insert_text_uc::InsertTextUseCase;
47use anyhow::Result;
48use common::event::{Event, Origin};
49
50use common::event::DocumentEditingEvent::CreateList;
51use common::event::DocumentEditingEvent::DeleteText;
52use common::event::DocumentEditingEvent::InsertBlock;
53use common::event::DocumentEditingEvent::InsertFormattedText;
54use common::event::DocumentEditingEvent::InsertFragment;
55use common::event::DocumentEditingEvent::InsertFrame;
56use common::event::DocumentEditingEvent::InsertHtmlAtPosition;
57use common::event::DocumentEditingEvent::InsertImage;
58use common::event::DocumentEditingEvent::InsertList;
59use common::event::DocumentEditingEvent::InsertMarkdownAtPosition;
60use common::event::DocumentEditingEvent::InsertText;
61
62use common::undo_redo::UndoRedoManager;
63use common::{database::db_context::DbContext, event::EventHub};
64use std::sync::Arc;
65
66pub fn insert_text(
67    db_context: &DbContext,
68    event_hub: &Arc<EventHub>,
69    undo_redo_manager: &mut UndoRedoManager,
70    stack_id: Option<u64>,
71    dto: &InsertTextDto,
72) -> Result<InsertTextResultDto> {
73    let uow_context = InsertTextUnitOfWorkFactory::new(db_context, event_hub);
74    let mut uc = InsertTextUseCase::new(Box::new(uow_context));
75    let return_dto = uc.execute(dto)?;
76    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
77    // Notify that the handling manifest has been loaded
78    event_hub.send_event(Event {
79        origin: Origin::DocumentEditing(InsertText),
80        ids: vec![],
81        data: None,
82    });
83    Ok(return_dto)
84}
85
86pub fn delete_text(
87    db_context: &DbContext,
88    event_hub: &Arc<EventHub>,
89    undo_redo_manager: &mut UndoRedoManager,
90    stack_id: Option<u64>,
91    dto: &DeleteTextDto,
92) -> Result<DeleteTextResultDto> {
93    let uow_context = DeleteTextUnitOfWorkFactory::new(db_context, event_hub);
94    let mut uc = DeleteTextUseCase::new(Box::new(uow_context));
95    let return_dto = uc.execute(dto)?;
96    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
97    // Notify that the handling manifest has been loaded
98    event_hub.send_event(Event {
99        origin: Origin::DocumentEditing(DeleteText),
100        ids: vec![],
101        data: None,
102    });
103    Ok(return_dto)
104}
105
106pub fn insert_block(
107    db_context: &DbContext,
108    event_hub: &Arc<EventHub>,
109    undo_redo_manager: &mut UndoRedoManager,
110    stack_id: Option<u64>,
111    dto: &InsertBlockDto,
112) -> Result<InsertBlockResultDto> {
113    let uow_context = InsertBlockUnitOfWorkFactory::new(db_context, event_hub);
114    let mut uc = InsertBlockUseCase::new(Box::new(uow_context));
115    let return_dto = uc.execute(dto)?;
116    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
117    // Notify that the handling manifest has been loaded
118    event_hub.send_event(Event {
119        origin: Origin::DocumentEditing(InsertBlock),
120        ids: vec![],
121        data: None,
122    });
123    Ok(return_dto)
124}
125
126pub fn insert_image(
127    db_context: &DbContext,
128    event_hub: &Arc<EventHub>,
129    undo_redo_manager: &mut UndoRedoManager,
130    stack_id: Option<u64>,
131    dto: &InsertImageDto,
132) -> Result<InsertImageResultDto> {
133    let uow_context = InsertImageUnitOfWorkFactory::new(db_context, event_hub);
134    let mut uc = InsertImageUseCase::new(Box::new(uow_context));
135    let return_dto = uc.execute(dto)?;
136    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
137    // Notify that the handling manifest has been loaded
138    event_hub.send_event(Event {
139        origin: Origin::DocumentEditing(InsertImage),
140        ids: vec![],
141        data: None,
142    });
143    Ok(return_dto)
144}
145
146pub fn insert_frame(
147    db_context: &DbContext,
148    event_hub: &Arc<EventHub>,
149    undo_redo_manager: &mut UndoRedoManager,
150    stack_id: Option<u64>,
151    dto: &InsertFrameDto,
152) -> Result<InsertFrameResultDto> {
153    let uow_context = InsertFrameUnitOfWorkFactory::new(db_context, event_hub);
154    let mut uc = InsertFrameUseCase::new(Box::new(uow_context));
155    let return_dto = uc.execute(dto)?;
156    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
157    // Notify that the handling manifest has been loaded
158    event_hub.send_event(Event {
159        origin: Origin::DocumentEditing(InsertFrame),
160        ids: vec![],
161        data: None,
162    });
163    Ok(return_dto)
164}
165
166pub fn insert_formatted_text(
167    db_context: &DbContext,
168    event_hub: &Arc<EventHub>,
169    undo_redo_manager: &mut UndoRedoManager,
170    stack_id: Option<u64>,
171    dto: &InsertFormattedTextDto,
172) -> Result<InsertFormattedTextResultDto> {
173    let uow_context = InsertFormattedTextUnitOfWorkFactory::new(db_context, event_hub);
174    let mut uc = InsertFormattedTextUseCase::new(Box::new(uow_context));
175    let return_dto = uc.execute(dto)?;
176    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
177    // Notify that the handling manifest has been loaded
178    event_hub.send_event(Event {
179        origin: Origin::DocumentEditing(InsertFormattedText),
180        ids: vec![],
181        data: None,
182    });
183    Ok(return_dto)
184}
185
186pub fn create_list(
187    db_context: &DbContext,
188    event_hub: &Arc<EventHub>,
189    undo_redo_manager: &mut UndoRedoManager,
190    stack_id: Option<u64>,
191    dto: &CreateListDto,
192) -> Result<CreateListResultDto> {
193    let uow_context = CreateListUnitOfWorkFactory::new(db_context, event_hub);
194    let mut uc = CreateListUseCase::new(Box::new(uow_context));
195    let return_dto = uc.execute(dto)?;
196    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
197    // Notify that the handling manifest has been loaded
198    event_hub.send_event(Event {
199        origin: Origin::DocumentEditing(CreateList),
200        ids: vec![],
201        data: None,
202    });
203    Ok(return_dto)
204}
205
206pub fn insert_list(
207    db_context: &DbContext,
208    event_hub: &Arc<EventHub>,
209    undo_redo_manager: &mut UndoRedoManager,
210    stack_id: Option<u64>,
211    dto: &InsertListDto,
212) -> Result<InsertListResultDto> {
213    let uow_context = InsertListUnitOfWorkFactory::new(db_context, event_hub);
214    let mut uc = InsertListUseCase::new(Box::new(uow_context));
215    let return_dto = uc.execute(dto)?;
216    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
217    // Notify that the handling manifest has been loaded
218    event_hub.send_event(Event {
219        origin: Origin::DocumentEditing(InsertList),
220        ids: vec![],
221        data: None,
222    });
223    Ok(return_dto)
224}
225
226pub fn insert_fragment(
227    db_context: &DbContext,
228    event_hub: &Arc<EventHub>,
229    undo_redo_manager: &mut UndoRedoManager,
230    stack_id: Option<u64>,
231    dto: &InsertFragmentDto,
232) -> Result<InsertFragmentResultDto> {
233    let uow_context = InsertFragmentUnitOfWorkFactory::new(db_context, event_hub);
234    let mut uc = InsertFragmentUseCase::new(Box::new(uow_context));
235    let return_dto = uc.execute(dto)?;
236    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
237    // Notify that the handling manifest has been loaded
238    event_hub.send_event(Event {
239        origin: Origin::DocumentEditing(InsertFragment),
240        ids: vec![],
241        data: None,
242    });
243    Ok(return_dto)
244}
245
246pub fn insert_html_at_position(
247    db_context: &DbContext,
248    event_hub: &Arc<EventHub>,
249    undo_redo_manager: &mut UndoRedoManager,
250    stack_id: Option<u64>,
251    dto: &InsertHtmlAtPositionDto,
252) -> Result<InsertHtmlAtPositionResultDto> {
253    let uow_context = InsertHtmlAtPositionUnitOfWorkFactory::new(db_context, event_hub);
254    let mut uc = InsertHtmlAtPositionUseCase::new(Box::new(uow_context));
255    let return_dto = uc.execute(dto)?;
256    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
257    // Notify that the handling manifest has been loaded
258    event_hub.send_event(Event {
259        origin: Origin::DocumentEditing(InsertHtmlAtPosition),
260        ids: vec![],
261        data: None,
262    });
263    Ok(return_dto)
264}
265
266pub fn insert_markdown_at_position(
267    db_context: &DbContext,
268    event_hub: &Arc<EventHub>,
269    undo_redo_manager: &mut UndoRedoManager,
270    stack_id: Option<u64>,
271    dto: &InsertMarkdownAtPositionDto,
272) -> Result<InsertMarkdownAtPositionResultDto> {
273    let uow_context = InsertMarkdownAtPositionUnitOfWorkFactory::new(db_context, event_hub);
274    let mut uc = InsertMarkdownAtPositionUseCase::new(Box::new(uow_context));
275    let return_dto = uc.execute(dto)?;
276    undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
277    // Notify that the handling manifest has been loaded
278    event_hub.send_event(Event {
279        origin: Origin::DocumentEditing(InsertMarkdownAtPosition),
280        ids: vec![],
281        data: None,
282    });
283    Ok(return_dto)
284}