-use crate::api_routes_websocket::websocket;
use actix_web::{guard, web, Error, HttpResponse, Result};
use lemmy_api::Perform;
use lemmy_api_common::{
ChangePassword,
DeleteAccount,
GetBannedPersons,
- GetCaptcha,
GetPersonDetails,
GetPersonMentions,
GetReplies,
ResolveObject,
Search,
},
- websocket::structs::{CommunityJoin, ModJoin, PostJoin, UserJoin},
};
use lemmy_api_crud::PerformCrud;
use lemmy_apub::{api::PerformApub, SendActivity};
pub fn config(cfg: &mut web::ServiceConfig, rate_limit: &RateLimitCell) {
cfg.service(
web::scope("/api/v3")
- // Websocket
- .service(web::resource("/ws").to(websocket))
// Site
.service(
web::scope("/site")
)
.route("/transfer", web::post().to(route_post::<TransferCommunity>))
.route("/ban_user", web::post().to(route_post::<BanFromCommunity>))
- .route("/mod", web::post().to(route_post::<AddModToCommunity>))
- .route("/join", web::post().to(route_post::<CommunityJoin>))
- .route("/mod/join", web::post().to(route_post::<ModJoin>)),
+ .route("/mod", web::post().to(route_post::<AddModToCommunity>)),
)
.service(
web::scope("/federated_instances")
.route("/list", web::get().to(route_get_apub::<GetPosts>))
.route("/like", web::post().to(route_post::<CreatePostLike>))
.route("/save", web::put().to(route_post::<SavePost>))
- .route("/join", web::post().to(route_post::<PostJoin>))
.route("/report", web::post().to(route_post::<CreatePostReport>))
.route(
"/report/resolve",
.wrap(rate_limit.register())
.route(web::post().to(route_post_crud::<Register>)),
)
- .service(
- // Handle captcha separately
- web::resource("/user/get_captcha")
- .wrap(rate_limit.post())
- .route(web::get().to(route_get::<GetCaptcha>)),
- )
// User actions
.service(
web::scope("/user")
web::post().to(route_post::<MarkPersonMentionAsRead>),
)
.route("/replies", web::get().to(route_get::<GetReplies>))
- .route("/join", web::post().to(route_post::<UserJoin>))
// Admin action. I don't like that it's in /user
.route("/ban", web::post().to(route_post::<BanPerson>))
.route("/banned", web::get().to(route_get::<GetBannedPersons>))
.route(
"/registration_application/approve",
web::put().to(route_post::<ApproveRegistrationApplication>),
+ )
+ .service(
+ web::scope("/purge")
+ .route("/person", web::post().to(route_post::<PurgePerson>))
+ .route("/community", web::post().to(route_post::<PurgeCommunity>))
+ .route("/post", web::post().to(route_post::<PurgePost>))
+ .route("/comment", web::post().to(route_post::<PurgeComment>)),
),
)
- .service(
- web::scope("/admin/purge")
- .wrap(rate_limit.message())
- .route("/person", web::post().to(route_post::<PurgePerson>))
- .route("/community", web::post().to(route_post::<PurgeCommunity>))
- .route("/post", web::post().to(route_post::<PurgePost>))
- .route("/comment", web::post().to(route_post::<PurgeComment>)),
- )
.service(
web::scope("/custom_emoji")
.wrap(rate_limit.message())
+ Send
+ 'static,
{
- let res = data.perform(&context, None).await?;
+ let res = data.perform(&context).await?;
SendActivity::send_activity(&data, &res, &apub_data).await?;
Ok(HttpResponse::Ok().json(res))
}
+ Send
+ 'static,
{
- let res = data.perform(&context, None).await?;
+ let res = data.perform(&context).await?;
SendActivity::send_activity(&data.0, &res, &context).await?;
Ok(HttpResponse::Ok().json(res))
}
+ Send
+ 'static,
{
- let res = data.perform(&context, None).await?;
+ let res = data.perform(&context).await?;
SendActivity::send_activity(&data, &res, &apub_data).await?;
Ok(HttpResponse::Ok().json(res))
}