b7cd2b1
use export::http::Router;
use export::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 router(_service: UserService) -> Router<UserService> {
let public: Router<UserService> = Router::new()
.route("/users/{user_id}/profile-detail", get(get_profile_detail))
.route(
"/push/config",
get(crate::handlers::push_config::push_config),
);
let protected = Router::<UserService>::new()
.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))
.wrap(export::http::Guard::Session);
public.merge(protected)
}