add: ability to generate invite codes in bulk add: better mark as nsfw

ui
This commit is contained in:
trisua 2025-06-23 13:48:16 -04:00
parent 2a77c61bf2
commit 4843688fcf
13 changed files with 126 additions and 90 deletions

View file

@ -832,8 +832,9 @@ pub async fn refresh_grant_request(
/// Generate an invite code.
///
/// Does not support third-party grants.
pub async fn generate_invite_code_request(
pub async fn generate_invite_codes_request(
jar: CookieJar,
Path(count): Path<usize>,
Extension(data): Extension<State>,
) -> impl IntoResponse {
let data = &(data.read().await).0;
@ -846,15 +847,25 @@ pub async fn generate_invite_code_request(
return Json(Error::NotAllowed.into());
}
match data
.create_invite_code(InviteCode::new(user.id), &user)
.await
{
Ok(x) => Json(ApiReturn {
ok: true,
message: "Code generated".to_string(),
payload: Some(x.code),
}),
Err(e) => Json(e.into()),
if count > 48 {
return Json(Error::DataTooLong("count".to_string()).into());
}
let mut out_string = String::new();
for _ in 0..count {
match data
.create_invite_code(InviteCode::new(user.id), &user)
.await
{
Ok(x) => out_string += &(x.code + "\n"),
Err(_) => break,
}
}
Json(ApiReturn {
ok: true,
message: "Success".to_string(),
payload: Some(out_string),
})
}

View file

@ -441,10 +441,7 @@ pub async fn posts_request(
};
check_user_blocked_or_private!(Some(&user), other_user, data, @api);
match data
.get_posts_by_user(id, 12, props.page, &Some(user.clone()))
.await
{
match data.get_posts_by_user(id, 12, props.page).await {
Ok(posts) => {
let ignore_users = crate::ignore_users_gen!(user!, #data);
Json(ApiReturn {

View file

@ -37,7 +37,10 @@ pub fn routes() -> Router {
.route("/util/proxy", get(util::proxy_request))
.route("/util/lang", get(util::set_langfile_request))
.route("/util/ip", get(util::ip_test_request))
.route("/invite", post(auth::profile::generate_invite_code_request))
.route(
"/invites/{count}",
post(auth::profile::generate_invite_codes_request),
)
// reactions
.route("/reactions", post(reactions::create_request))
.route("/reactions/{id}", get(reactions::get_request))