mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-09 19:41:32 +00:00
document types
This commit is contained in:
1 parent
10733d9d23
commit
7da69691a0
7 files changed
+101
-76
No files matched your search
@@ -1,5 +1,6 @@
|
||||
pub mod alerts;
|
||||
pub mod jobs;
|
||||
pub mod user;
|
||||
pub mod user_referrals;
|
||||
pub mod wallet_ledger_entries;
|
||||
pub mod wallets;
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use tokens::tokens::user_referral_codes::UserReferralCodeToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
use utoipa::{IntoParams, ToSchema};
|
||||
|
||||
// --- Request ---
|
||||
|
||||
#[derive(Deserialize, ToSchema, IntoParams)]
|
||||
pub struct ListGlobalUserReferralsQueryParams {
|
||||
pub cursor: Option<String>,
|
||||
pub limit: Option<u32>,
|
||||
}
|
||||
|
||||
// --- Response ---
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListGlobalUserReferralsSuccessResponse {
|
||||
pub success: bool,
|
||||
pub referrals: Vec<UserReferralResponse>,
|
||||
pub maybe_cursor: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct UserReferralResponse {
|
||||
pub invited_user: InvitedUserDetails,
|
||||
pub referrer_user: ReferrerUserDetails,
|
||||
pub maybe_referral_code_token: Option<UserReferralCodeToken>,
|
||||
pub maybe_referral_url: Option<String>,
|
||||
pub maybe_landing_url: Option<String>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct InvitedUserDetails {
|
||||
pub token: UserToken,
|
||||
pub username: String,
|
||||
pub display_name: String,
|
||||
pub email_address: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ReferrerUserDetails {
|
||||
pub token: UserToken,
|
||||
pub username: String,
|
||||
pub display_name: String,
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use utoipa::{IntoParams, ToSchema};
|
||||
|
||||
use crate::moderation::user_referrals::list_global_user_referrals::UserReferralResponse;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
#[derive(Deserialize, ToSchema, IntoParams)]
|
||||
pub struct ListUserReferralsForUserQueryParams {
|
||||
pub cursor: Option<String>,
|
||||
pub limit: Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
pub struct ListUserReferralsForUserPathInfo {
|
||||
pub username: String,
|
||||
}
|
||||
|
||||
// --- Response ---
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListUserReferralsForUserSuccessResponse {
|
||||
pub success: bool,
|
||||
pub referrals: Vec<UserReferralResponse>,
|
||||
pub maybe_cursor: Option<String>,
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
pub mod list_global_user_referrals;
|
||||
pub mod list_user_referrals_for_user;
|
||||
@@ -93,6 +93,8 @@ use crate::http_server::endpoints::moderation::user_feature_flags::moderator_lis
|
||||
use crate::http_server::endpoints::moderation::user_feature_flags::moderator_list_user_feature_flags_handler::*;
|
||||
use crate::http_server::endpoints::moderation::staff_audit_logs::moderator_list_staff_audit_logs_handler::*;
|
||||
use crate::http_server::endpoints::moderation::user_bans::moderation_ban_user_handler::*;
|
||||
use artcraft_api_defs::moderation::user_referrals::list_global_user_referrals::*;
|
||||
use artcraft_api_defs::moderation::user_referrals::list_user_referrals_for_user::*;
|
||||
use crate::http_server::endpoints::moderation::user_sessions::moderator_list_user_session_impersonation_requests_for_user_handler::*;
|
||||
use crate::http_server::endpoints::moderation::user_sessions::moderator_list_user_session_impersonation_requests_handler::*;
|
||||
use crate::http_server::endpoints::moderation::user_sessions::moderator_user_session_impersonation_request_handler::*;
|
||||
@@ -529,6 +531,8 @@ use crate::http_server::endpoints::media_files::list::list_batch_generated_redux
|
||||
crate::http_server::endpoints::moderation::debug_logs::moderation_list_debug_logs_for_token_handler::moderation_list_debug_logs_for_token_handler,
|
||||
crate::http_server::endpoints::moderation::jobs::moderation_get_job_by_token_handler::moderation_get_job_by_token_handler,
|
||||
crate::http_server::endpoints::moderation::staff_audit_logs::moderator_list_staff_audit_logs_handler::moderator_list_staff_audit_logs_handler,
|
||||
crate::http_server::endpoints::moderation::user_referrals::moderator_list_global_user_referrals_handler::moderator_list_global_user_referrals_handler,
|
||||
crate::http_server::endpoints::moderation::user_referrals::moderator_list_user_referrals_for_user_handler::moderator_list_user_referrals_for_user_handler,
|
||||
crate::http_server::endpoints::moderation::user_bans::moderation_ban_user_handler::moderation_ban_user_handler,
|
||||
crate::http_server::endpoints::moderation::user_sessions::moderator_list_user_session_impersonation_requests_for_user_handler::moderator_list_user_session_impersonation_requests_for_user_handler,
|
||||
crate::http_server::endpoints::moderation::user_sessions::moderator_list_user_session_impersonation_requests_handler::moderator_list_user_session_impersonation_requests_handler,
|
||||
@@ -1225,6 +1229,16 @@ use crate::http_server::endpoints::media_files::list::list_batch_generated_redux
|
||||
ReferralCodeEntry,
|
||||
DeleteReferralCodePathInfo,
|
||||
DeleteReferralCodeResponse,
|
||||
|
||||
// User Referrals (Moderation)
|
||||
ListGlobalUserReferralsQueryParams,
|
||||
ListGlobalUserReferralsSuccessResponse,
|
||||
UserReferralResponse,
|
||||
InvitedUserDetails,
|
||||
ReferrerUserDetails,
|
||||
ListUserReferralsForUserQueryParams,
|
||||
ListUserReferralsForUserPathInfo,
|
||||
ListUserReferralsForUserSuccessResponse,
|
||||
))
|
||||
)]
|
||||
pub struct ApiDoc;
|
||||
+4
-48
@@ -2,15 +2,15 @@ use std::sync::Arc;
|
||||
|
||||
use actix_web::web::{Json, Query};
|
||||
use actix_web::{web, HttpRequest};
|
||||
use chrono::{DateTime, Utc};
|
||||
use log::warn;
|
||||
use utoipa::{IntoParams, ToSchema};
|
||||
|
||||
use artcraft_api_defs::moderation::user_referrals::list_global_user_referrals::{
|
||||
InvitedUserDetails, ListGlobalUserReferralsQueryParams,
|
||||
ListGlobalUserReferralsSuccessResponse, ReferrerUserDetails, UserReferralResponse,
|
||||
};
|
||||
use mysql_queries::queries::user_referrals::list_global_user_referrals::{
|
||||
list_global_user_referrals, ListGlobalUserReferralsArgs,
|
||||
};
|
||||
use tokens::tokens::user_referral_codes::UserReferralCodeToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::{
|
||||
@@ -22,50 +22,6 @@ const CURSOR_NAME: &str = "modusrref";
|
||||
const DEFAULT_LIMIT: u32 = 100;
|
||||
const MAX_LIMIT: u32 = 1000;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
#[derive(Deserialize, ToSchema, IntoParams)]
|
||||
pub struct ListGlobalUserReferralsQueryParams {
|
||||
pub cursor: Option<String>,
|
||||
pub limit: Option<u32>,
|
||||
}
|
||||
|
||||
// --- Response ---
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListGlobalUserReferralsSuccessResponse {
|
||||
pub success: bool,
|
||||
pub referrals: Vec<UserReferralResponse>,
|
||||
pub maybe_cursor: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct UserReferralResponse {
|
||||
pub invited_user: InvitedUserDetails,
|
||||
pub referrer_user: ReferrerUserDetails,
|
||||
pub maybe_referral_code_token: Option<UserReferralCodeToken>,
|
||||
pub maybe_referral_url: Option<String>,
|
||||
pub maybe_landing_url: Option<String>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct InvitedUserDetails {
|
||||
pub token: UserToken,
|
||||
pub username: String,
|
||||
pub display_name: String,
|
||||
pub email_address: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ReferrerUserDetails {
|
||||
pub token: UserToken,
|
||||
pub username: String,
|
||||
pub display_name: String,
|
||||
}
|
||||
|
||||
// --- Handler ---
|
||||
|
||||
/// List all user referrals globally. Moderators only.
|
||||
#[utoipa::path(
|
||||
get,
|
||||
|
||||
+7
-28
@@ -3,16 +3,19 @@ use std::sync::Arc;
|
||||
use actix_web::web::{Json, Path, Query};
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
use utoipa::{IntoParams, ToSchema};
|
||||
|
||||
use artcraft_api_defs::moderation::user_referrals::list_global_user_referrals::{
|
||||
InvitedUserDetails, ReferrerUserDetails, UserReferralResponse,
|
||||
};
|
||||
use artcraft_api_defs::moderation::user_referrals::list_user_referrals_for_user::{
|
||||
ListUserReferralsForUserPathInfo, ListUserReferralsForUserQueryParams,
|
||||
ListUserReferralsForUserSuccessResponse,
|
||||
};
|
||||
use mysql_queries::queries::user_referrals::list_user_referrals_for_user::{
|
||||
list_user_referrals_for_user, ListUserReferralsForUserArgs,
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::advanced_common_web_error::AdvancedCommonWebError;
|
||||
use crate::http_server::endpoints::moderation::user_referrals::moderator_list_global_user_referrals_handler::{
|
||||
InvitedUserDetails, ReferrerUserDetails, UserReferralResponse,
|
||||
};
|
||||
use crate::http_server::web_utils::user_session::require_moderator::{
|
||||
require_moderator, UseDatabase,
|
||||
};
|
||||
@@ -22,30 +25,6 @@ const CURSOR_NAME: &str = "modusrrefu";
|
||||
const DEFAULT_LIMIT: u32 = 100;
|
||||
const MAX_LIMIT: u32 = 1000;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
#[derive(Deserialize, ToSchema, IntoParams)]
|
||||
pub struct ListUserReferralsForUserQueryParams {
|
||||
pub cursor: Option<String>,
|
||||
pub limit: Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
pub struct ListUserReferralsForUserPathInfo {
|
||||
pub username: String,
|
||||
}
|
||||
|
||||
// --- Response ---
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct ListUserReferralsForUserSuccessResponse {
|
||||
pub success: bool,
|
||||
pub referrals: Vec<UserReferralResponse>,
|
||||
pub maybe_cursor: Option<String>,
|
||||
}
|
||||
|
||||
// --- Handler ---
|
||||
|
||||
/// List user referrals for a specific referrer user. Moderators only.
|
||||
#[utoipa::path(
|
||||
get,
|
||||
|
||||
Reference in new issue
Block a user