use api::http::Router; use api::http::routing::{delete, get, put}; use crate::handlers::create_meme::create_meme; use crate::handlers::delete_avatar::delete_avatar; use crate::handlers::delete_meme::delete_meme; use crate::handlers::delete_push_subscription::delete_push_subscription; use crate::handlers::get_avatar::get_avatar; use crate::handlers::get_profile_detail::get_profile_detail; use crate::handlers::get_user_avatar::get_user_avatar; use crate::handlers::list_memes::list_memes; use crate::handlers::list_push_subscriptions::list_push_subscriptions; use crate::handlers::list_saved_messages::list_saved_messages; use crate::handlers::my_reports::my_reports; use crate::handlers::my_spaces::my_spaces; use crate::handlers::my_suspensions::my_suspensions; use crate::handlers::recent_mentions::recent_mentions; use crate::handlers::save_message::save_message; use crate::handlers::unsave_message::unsave_message; use crate::handlers::upload_avatar::upload_avatar; use crate::handlers::upsert_push_subscription::upsert_push_subscription; use crate::services::service::UserService; pub fn public(_service: UserService) -> Router { Router::::new() .route("/users/{user_id}/profile-detail", get(get_profile_detail)) .route( "/push/config", get(crate::handlers::push_config::push_config), ) } pub fn protected(_service: UserService) -> Router { Router::::new() .route( "/auth/ssh-keys", get(crate::handlers::ssh_key::ssh_key_list).post(crate::handlers::ssh_key::ssh_key_add), ) .route( "/auth/ssh-keys/{key_id}", delete(crate::handlers::ssh_key::ssh_key_delete), ) .route("/users/{user_id}/avatar", get(get_user_avatar)) .route( "/me/avatar", get(get_avatar) .put(upload_avatar) .delete(delete_avatar) .payload_limit(6 * 1024 * 1024), ) .route("/me/spaces", get(my_spaces)) .route("/me/memes", get(list_memes).post(create_meme)) .route( "/me/memes/{meme_id}", put(crate::handlers::update_meme::update_meme), ) .route("/me/memes/{meme_id}", delete(delete_meme)) .route( "/me/push-subscriptions", get(list_push_subscriptions).post(upsert_push_subscription), ) .route( "/me/push-subscriptions/{push_id}", delete(delete_push_subscription), ) .route("/me/recent-mentions", get(recent_mentions)) .route("/me/reports", get(my_reports)) .route( "/me/messages/saved", get(list_saved_messages).post(save_message), ) .route("/me/messages/saved/{message_id}", delete(unsave_message)) .route("/me/suspensions", get(my_suspensions)) }