main
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<UserService> {
Router::<UserService>::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<UserService> {
Router::<UserService>::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))
}