text_document_frontend/commands/
inline_element_commands.rs1#![allow(unused_imports, dead_code)]
5
6use crate::app_context::AppContext;
7use anyhow::{Context, Result};
8use common::types::EntityId;
9use direct_access::{
10 CreateInlineElementDto, InlineElementDto, UpdateInlineElementDto, inline_element_controller,
11};
12
13pub fn create_orphan_inline_element(
15 ctx: &AppContext,
16 stack_id: Option<u64>,
17 dto: &CreateInlineElementDto,
18) -> Result<InlineElementDto> {
19 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
20 inline_element_controller::create_orphan(
21 &ctx.db_context,
22 &ctx.event_hub,
23 &mut undo_redo_manager,
24 stack_id,
25 dto,
26 )
27 .context("creating inline_element")
28}
29pub fn create_inline_element(
31 ctx: &AppContext,
32 stack_id: Option<u64>,
33 dto: &CreateInlineElementDto,
34 owner_id: EntityId,
35 index: i32,
36) -> Result<InlineElementDto> {
37 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
38 inline_element_controller::create(
39 &ctx.db_context,
40 &ctx.event_hub,
41 &mut undo_redo_manager,
42 stack_id,
43 dto,
44 owner_id,
45 index,
46 )
47 .context("creating inline_element")
48}
49pub fn create_orphan_inline_element_multi(
51 ctx: &AppContext,
52 stack_id: Option<u64>,
53 dtos: &[CreateInlineElementDto],
54) -> Result<Vec<InlineElementDto>> {
55 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
56 inline_element_controller::create_orphan_multi(
57 &ctx.db_context,
58 &ctx.event_hub,
59 &mut undo_redo_manager,
60 stack_id,
61 dtos,
62 )
63 .context("creating inline_element entities")
64}
65pub fn create_inline_element_multi(
67 ctx: &AppContext,
68 stack_id: Option<u64>,
69 dtos: &[CreateInlineElementDto],
70 owner_id: EntityId,
71 index: i32,
72) -> Result<Vec<InlineElementDto>> {
73 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
74 inline_element_controller::create_multi(
75 &ctx.db_context,
76 &ctx.event_hub,
77 &mut undo_redo_manager,
78 stack_id,
79 dtos,
80 owner_id,
81 index,
82 )
83 .context("creating inline_element entities")
84}
85pub fn get_inline_element(ctx: &AppContext, id: &EntityId) -> Result<Option<InlineElementDto>> {
87 inline_element_controller::get(&ctx.db_context, id).context("getting inline_element")
88}
89
90pub fn get_inline_element_multi(
92 ctx: &AppContext,
93 ids: &[EntityId],
94) -> Result<Vec<Option<InlineElementDto>>> {
95 inline_element_controller::get_multi(&ctx.db_context, ids)
96 .context("getting inline_element entities")
97}
98
99pub fn get_all_inline_element(ctx: &AppContext) -> Result<Vec<InlineElementDto>> {
104 inline_element_controller::get_all(&ctx.db_context)
105 .context("getting all inline_element entities")
106}
107
108pub fn update_inline_element(
110 ctx: &AppContext,
111 stack_id: Option<u64>,
112 dto: &UpdateInlineElementDto,
113) -> Result<InlineElementDto> {
114 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
115 inline_element_controller::update(
116 &ctx.db_context,
117 &ctx.event_hub,
118 &mut undo_redo_manager,
119 stack_id,
120 dto,
121 )
122 .context("updating inline_element")
123}
124
125pub fn update_inline_element_multi(
127 ctx: &AppContext,
128 stack_id: Option<u64>,
129 dtos: &[UpdateInlineElementDto],
130) -> Result<Vec<InlineElementDto>> {
131 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
132 inline_element_controller::update_multi(
133 &ctx.db_context,
134 &ctx.event_hub,
135 &mut undo_redo_manager,
136 stack_id,
137 dtos,
138 )
139 .context("updating inline_element entities")
140}
141
142pub fn update_inline_element_with_relationships(
144 ctx: &AppContext,
145 stack_id: Option<u64>,
146 dto: &InlineElementDto,
147) -> Result<InlineElementDto> {
148 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
149 inline_element_controller::update_with_relationships(
150 &ctx.db_context,
151 &ctx.event_hub,
152 &mut undo_redo_manager,
153 stack_id,
154 dto,
155 )
156 .context("updating inline_element with relationships")
157}
158
159pub fn update_inline_element_with_relationships_multi(
161 ctx: &AppContext,
162 stack_id: Option<u64>,
163 dtos: &[InlineElementDto],
164) -> Result<Vec<InlineElementDto>> {
165 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
166 inline_element_controller::update_with_relationships_multi(
167 &ctx.db_context,
168 &ctx.event_hub,
169 &mut undo_redo_manager,
170 stack_id,
171 dtos,
172 )
173 .context("updating inline_element entities with relationships")
174}
175
176pub fn remove_inline_element(ctx: &AppContext, stack_id: Option<u64>, id: &EntityId) -> Result<()> {
178 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
179 inline_element_controller::remove(
180 &ctx.db_context,
181 &ctx.event_hub,
182 &mut undo_redo_manager,
183 stack_id,
184 id,
185 )
186 .context("removing inline_element")
187}
188
189pub fn remove_inline_element_multi(
191 ctx: &AppContext,
192 stack_id: Option<u64>,
193 ids: &[EntityId],
194) -> Result<()> {
195 let mut undo_redo_manager = ctx.undo_redo_manager.lock().unwrap();
196 inline_element_controller::remove_multi(
197 &ctx.db_context,
198 &ctx.event_hub,
199 &mut undo_redo_manager,
200 stack_id,
201 ids,
202 )
203 .context("removing inline_element entities")
204}