174 lines
5.9 KiB
Rust
174 lines
5.9 KiB
Rust
pub mod ai;
|
|
pub mod category;
|
|
pub mod draft_and_history;
|
|
pub mod member;
|
|
pub mod message;
|
|
pub mod notification;
|
|
pub mod pin;
|
|
pub mod reaction;
|
|
pub mod room;
|
|
pub mod thread;
|
|
pub mod ws;
|
|
pub mod ws_handler;
|
|
pub mod ws_types;
|
|
pub mod ws_universal;
|
|
|
|
use actix_web::web;
|
|
|
|
pub fn init_room_routes(cfg: &mut web::ServiceConfig) {
|
|
cfg.service(
|
|
web::scope("")
|
|
.route(
|
|
"/project_room/{project_name}/rooms",
|
|
web::get().to(room::room_list),
|
|
)
|
|
.route(
|
|
"/project_room/{project_name}/rooms",
|
|
web::post().to(room::room_create),
|
|
)
|
|
.route(
|
|
"/project_room/{project_name}/room-categories",
|
|
web::get().to(category::category_list),
|
|
)
|
|
.route(
|
|
"/project_room/{project_name}/room-categories",
|
|
web::post().to(category::category_create),
|
|
)
|
|
.route("/rooms/{room_id}", web::get().to(room::room_get))
|
|
.route("/rooms/{room_id}", web::patch().to(room::room_update))
|
|
.route("/rooms/{room_id}", web::delete().to(room::room_delete))
|
|
.route(
|
|
"/rooms/{room_id}/messages",
|
|
web::get().to(message::message_list),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages",
|
|
web::post().to(message::message_create),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}",
|
|
web::patch().to(message::message_update),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}",
|
|
web::get().to(message::message_get),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/revoke",
|
|
web::post().to(message::message_revoke),
|
|
)
|
|
// room pins
|
|
.route("/rooms/{room_id}/pins", web::get().to(pin::pin_list))
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/pin",
|
|
web::post().to(pin::pin_add),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/pin",
|
|
web::delete().to(pin::pin_remove),
|
|
)
|
|
// room threads
|
|
.route(
|
|
"/rooms/{room_id}/threads",
|
|
web::get().to(thread::thread_list),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/threads",
|
|
web::post().to(thread::thread_create),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/threads/{thread_id}/messages",
|
|
web::get().to(thread::thread_messages),
|
|
)
|
|
// room members
|
|
.route(
|
|
"/rooms/{room_id}/members",
|
|
web::get().to(member::member_list),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/members",
|
|
web::post().to(member::member_add),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/members/{user_id}",
|
|
web::delete().to(member::member_remove),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/members/me",
|
|
web::delete().to(member::member_leave),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/members/me/read-seq",
|
|
web::patch().to(member::member_set_read_seq),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/members/{user_id}/role",
|
|
web::patch().to(member::member_update_role),
|
|
)
|
|
// room reactions
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/reactions",
|
|
web::post().to(reaction::reaction_add),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/reactions/{emoji}",
|
|
web::delete().to(reaction::reaction_remove),
|
|
)
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/reactions",
|
|
web::get().to(reaction::reaction_get),
|
|
)
|
|
// message search
|
|
.route(
|
|
"/rooms/{room_id}/messages/search",
|
|
web::get().to(reaction::message_search),
|
|
)
|
|
// message edit history
|
|
.route(
|
|
"/rooms/{room_id}/messages/{message_id}/edit-history",
|
|
web::get().to(draft_and_history::message_edit_history),
|
|
)
|
|
// mention notifications
|
|
.route(
|
|
"/me/mentions",
|
|
web::get().to(draft_and_history::mention_list),
|
|
)
|
|
.route(
|
|
"/me/mentions/read-all",
|
|
web::post().to(draft_and_history::mention_read_all),
|
|
)
|
|
// room AI
|
|
.route("/rooms/{room_id}/ai", web::get().to(ai::ai_list))
|
|
.route("/rooms/{room_id}/ai", web::put().to(ai::ai_upsert))
|
|
.route(
|
|
"/rooms/{room_id}/ai/{model_id}",
|
|
web::delete().to(ai::ai_delete),
|
|
)
|
|
// room category management
|
|
.route(
|
|
"/room-categories/{category_id}",
|
|
web::patch().to(category::category_update),
|
|
)
|
|
.route(
|
|
"/room-categories/{category_id}",
|
|
web::delete().to(category::category_delete),
|
|
)
|
|
.route(
|
|
"/me/notifications",
|
|
web::get().to(notification::notification_list),
|
|
)
|
|
.route(
|
|
"/me/notifications/{notification_id}/read",
|
|
web::post().to(notification::notification_mark_read),
|
|
)
|
|
.route(
|
|
"/me/notifications/read-all",
|
|
web::post().to(notification::notification_mark_all_read),
|
|
)
|
|
.route(
|
|
"/me/notifications/{notification_id}/archive",
|
|
web::post().to(notification::notification_archive),
|
|
),
|
|
);
|
|
}
|