@@ -18,10 +18,11 @@ use crate::biz::workspace::ops::{
18
18
get_reactions_on_published_view, remove_comment_on_published_view, remove_reaction_on_comment,
19
19
} ;
20
20
use crate :: biz:: workspace:: page_view:: {
21
- add_recent_pages, append_block_at_the_end_of_page, create_database_view, create_page,
22
- create_space, delete_all_pages_from_trash, delete_trash, favorite_page, get_page_view_collab,
23
- move_page, move_page_to_trash, publish_page, reorder_favorite_page, restore_all_pages_from_trash,
24
- restore_page_from_trash, unpublish_page, update_page, update_page_collab_data, update_space,
21
+ add_recent_pages, append_block_at_the_end_of_page, create_database_view, create_folder_view,
22
+ create_page, create_space, delete_all_pages_from_trash, delete_trash, favorite_page,
23
+ get_page_view_collab, move_page, move_page_to_trash, publish_page, reorder_favorite_page,
24
+ restore_all_pages_from_trash, restore_page_from_trash, unpublish_page, update_page,
25
+ update_page_collab_data, update_space,
25
26
} ;
26
27
use crate :: biz:: workspace:: publish:: get_workspace_default_publish_view_info_meta;
27
28
use crate :: biz:: workspace:: quick_note:: {
@@ -184,6 +185,9 @@ pub fn workspace_scope() -> Scope {
184
185
. service (
185
186
web:: resource ( "/{workspace_id}/space/{view_id}" ) . route ( web:: patch ( ) . to ( update_space_handler) ) ,
186
187
)
188
+ . service (
189
+ web:: resource ( "/{workspace_id}/folder-view" ) . route ( web:: post ( ) . to ( post_folder_view_handler) ) ,
190
+ )
187
191
. service (
188
192
web:: resource ( "/{workspace_id}/page-view" ) . route ( web:: post ( ) . to ( post_page_view_handler) ) ,
189
193
)
@@ -1253,6 +1257,32 @@ async fn update_space_handler(
1253
1257
Ok ( Json ( AppResponse :: Ok ( ) ) )
1254
1258
}
1255
1259
1260
+ async fn post_folder_view_handler (
1261
+ user_uuid : UserUuid ,
1262
+ path : web:: Path < Uuid > ,
1263
+ payload : Json < CreateFolderViewParams > ,
1264
+ state : Data < AppState > ,
1265
+ server : Data < RealtimeServerAddr > ,
1266
+ req : HttpRequest ,
1267
+ ) -> Result < Json < AppResponse < Page > > > {
1268
+ let uid = state. user_cache . get_user_uid ( & user_uuid) . await ?;
1269
+ let workspace_uuid = path. into_inner ( ) ;
1270
+ let user = realtime_user_for_web_request ( req. headers ( ) , uid) ?;
1271
+ let page = create_folder_view (
1272
+ & state. metrics . appflowy_web_metrics ,
1273
+ server,
1274
+ user,
1275
+ & state. collab_access_control_storage ,
1276
+ workspace_uuid,
1277
+ & payload. parent_view_id ,
1278
+ payload. layout . clone ( ) ,
1279
+ payload. name . as_deref ( ) ,
1280
+ payload. view_id ,
1281
+ )
1282
+ . await ?;
1283
+ Ok ( Json ( AppResponse :: Ok ( ) . with_data ( page) ) )
1284
+ }
1285
+
1256
1286
async fn post_page_view_handler (
1257
1287
user_uuid : UserUuid ,
1258
1288
path : web:: Path < Uuid > ,
0 commit comments