mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-29 21:12:52 -04:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a0fa62cd7 |
@@ -19,18 +19,9 @@ Handlers in `storyteller_web` follow this structure:
|
||||
|
||||
### Session/Auth
|
||||
|
||||
Helpers live in `storyteller_web` under `http_server/web_utils/user_session/`. Each takes a
|
||||
generic `mysql_executor: E` (any `sqlx::Executor`), so whether it reuses a connection or acquires
|
||||
its own depends on the **argument you pass**:
|
||||
|
||||
- `require_user_session(http_request, session_checker, mysql_executor)` — require a logged-in user.
|
||||
- `require_user_session_extended(...)` — same, with extra session detail.
|
||||
- `require_moderator(http_request, session_checker, mysql_executor)` — admin-only endpoints.
|
||||
|
||||
PREFER passing an already-open connection (`&mut *conn`) so the helper reuses it. Passing
|
||||
`&server_state.mysql_pool` makes it acquire a fresh connection — avoid that when the handler
|
||||
already holds one (the double-acquire adds pool pressure; this crate has had pool-timeout
|
||||
incidents). There is no `*_using_connection` variant — the reuse/acquire choice is the argument.
|
||||
- `require_user_session_using_connection()` reuses an open DB connection (preferred)
|
||||
- `require_user_session()` acquires its own connection (deprecated)
|
||||
- `require_moderator()` for admin-only endpoints
|
||||
|
||||
### API Type Definitions
|
||||
|
||||
|
||||
@@ -7,11 +7,10 @@
|
||||
- `#[macro_use] extern crate serde_derive;` is used in binary crates; library crates use `use serde_derive::{Serialize, Deserialize};`
|
||||
- Never use `println!` or `eprintln!` outside of tests; use `log` crate macros (`info!`, `warn!`, `error!`, `debug!`, `trace!`) instead
|
||||
- Use `anyhow::Result` / `AnyhowResult` for fallible functions in application code; new database queries should use `Result<T, sqlx::Error>` instead
|
||||
- SQLx: MySQL queries belong in the `mysql_queries` crate. Do NOT write `sqlx::query!` /
|
||||
`sqlx::query()` in application/service crates (e.g. `storyteller-web`, which has zero direct
|
||||
SQLx queries) — add or reuse a function in `mysql_queries` and call it. The compile-time
|
||||
`query!` / `query_as!` macro conventions for that crate are documented in
|
||||
`crates/schema/database/mysql_queries/CLAUDE.md`.
|
||||
- SQLx queries: prefer `sqlx::query!` and `sqlx::query_as!` compile-time checked macros over
|
||||
runtime `sqlx::query()` / `sqlx::query_as()`. The macros catch SQL typos, column mismatches,
|
||||
and type errors at build time. Use runtime queries only when assembling complicated
|
||||
dynamic/branching queries that cannot be expressed as a compile-time macro.
|
||||
- Enum Display/Debug: use `impl_enum_display_and_debug_using_to_str!` macro, not `derive_more::Display` (CLion doesn't understand it)
|
||||
- Fields that are optional use the `maybe_` prefix: `maybe_creator_user_token`, `maybe_prompt_token`
|
||||
- When implementing `fmt::Display` for error types, use the pattern: `write!(f, "{:?}", self)`
|
||||
|
||||
@@ -58,7 +58,7 @@ artcraft/
|
||||
|
||||
- Rust with no minimum supported version
|
||||
- Actix-web for HTTP services
|
||||
- SQLx for MySQL and SQLite. MySQL queries belong in the `mysql_queries` crate, not in application/service crates like `storyteller-web` — call those query functions instead of embedding `sqlx::query!` / `sqlx::query()` in handlers. (Query-writing conventions live in `crates/schema/database/mysql_queries/CLAUDE.md`.)
|
||||
- SQLx for MySQL and SQLite; prefer `sqlx::query!` / `sqlx::query_as!` compile-time checked macros over runtime `sqlx::query()` whenever possible
|
||||
- A mix of wreq and reqwest for Rust HTTP clients
|
||||
- Never use `println!` or `eprintln!` outside of tests; use `log` crate macros instead
|
||||
- When two crates export the same type name, alias imports with a suffix: `use foo::Bar as BarFoo;`
|
||||
|
||||
@@ -28,21 +28,8 @@ deprecated or only used when setting other HTTP headers, like cookies.
|
||||
|
||||
Prefer `CommonWebError` for new handlers unless you need custom error variants.
|
||||
|
||||
The session helpers (`require_user_session`, `require_user_session_extended`, `require_moderator`
|
||||
in `http_server/web_utils/user_session/`) take a generic `mysql_executor` argument. Pass an
|
||||
already-open connection (`&mut *conn`) so the helper reuses it; do NOT pass
|
||||
`&server_state.mysql_pool` when the handler already holds a connection, since that self-acquires a
|
||||
second one and adds pool pressure (this crate has had pool-timeout incidents). There is no
|
||||
`require_user_session_using_connection` / `require_moderator_using_connection` — the
|
||||
reuse-vs-acquire behavior is determined by the argument.
|
||||
|
||||
## Database Access
|
||||
|
||||
Do NOT write SQLx queries in this crate. `storyteller-web` contains **zero** direct SQLx queries —
|
||||
all MySQL access goes through the `mysql_queries` crate. Add a function there (or reuse an existing
|
||||
one) and call it from the handler; never embed `sqlx::query!` / `sqlx::query()` in a handler or
|
||||
helper here. See `crates/schema/database/mysql_queries/CLAUDE.md` for the query-writing conventions
|
||||
(compile-time `query!` / `query_as!` macros, offline cache, the `Args`/`Executor` pattern, etc.).
|
||||
When a handler uses `require_user_session`, prefer `require_user_session_using_connection`
|
||||
which reuses an existing DB connection.
|
||||
|
||||
## api_doc.rs
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ use actix_web::HttpRequest;
|
||||
use redis_caching::redis_ttl_cache::RedisTtlCache;
|
||||
use redis_common::redis_cache_keys::RedisCacheKeys;
|
||||
use user_traits_component::traits::internal_session_cache_purge::InternalSessionCachePurge;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::session_checker::SessionChecker;
|
||||
use crate::http_server::session::session_checker::SessionChecker;
|
||||
|
||||
pub struct InternalSessionCachePurgeImpl {
|
||||
session_checker: SessionChecker,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::http_server::user_lookup::user_session::session_utils::session_checker::SessionChecker;
|
||||
use crate::http_server::session::session_checker::SessionChecker;
|
||||
use actix_web::HttpRequest;
|
||||
use async_trait::async_trait;
|
||||
use chrono::Utc;
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ use server_environment::ServerEnvironment;
|
||||
|
||||
use crate::configs::plans::plan::Plan;
|
||||
use crate::configs::plans::plan_list::{DEVELOPMENT_PREMIUM_PLANS_BY_SLUG, FREE_LOGGED_IN_PLAN, FREE_LOGGED_OUT_PLAN, LOYALTY_PLANS_BY_SLUG, PRODUCTION_PREMIUM_PLANS_BY_SLUG};
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
|
||||
/// Look up the most appropriate plan for the session.
|
||||
/// This will probably grow to include a lot of factors.
|
||||
@@ -70,7 +70,7 @@ pub mod tests {
|
||||
|
||||
use crate::configs::plans::get_correct_plan_for_session::get_correct_plan_for_session;
|
||||
use crate::configs::plans::plan_list::{ALL_PLANS_BY_SLUG, FREE_LOGGED_IN_PLAN, FREE_LOGGED_OUT_PLAN};
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::{UserSessionExtended, UserSessionSubscriptionPlan};
|
||||
use crate::http_server::session::lookup::user_session_extended::{UserSessionExtended, UserSessionSubscriptionPlan};
|
||||
|
||||
#[test]
|
||||
fn test_free_logged_out_plan() {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::http_server::user_lookup::user_session::session_utils::session_checker_error::SessionCheckerError;
|
||||
use crate::http_server::session::session_checker_error::SessionCheckerError;
|
||||
use actix_artcraft::sessions::anonymous_visitor_tracking::avt_cookie_payload_error::AvtCookiePayloadError;
|
||||
use actix_artcraft::sessions::user_sessions::http_user_session_payload_error::HttpUserSessionPayloadError;
|
||||
use actix_http::StatusCode;
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ use tokens::tokens::voice_conversion_results::VoiceConversionResultToken;
|
||||
use crate::configs::plans::get_correct_plan_for_session::get_correct_plan_for_session;
|
||||
use crate::http_server::requests::request_headers::get_routing_tag_header::get_routing_tag_header;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use log::{info, warn};
|
||||
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory;
|
||||
use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType;
|
||||
use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ use actix_web::{web, HttpMessage, HttpRequest, HttpResponse};
|
||||
use chrono::{DateTime, Utc};
|
||||
use log::warn;
|
||||
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use enums::by_table::media_uploads::media_upload_type::MediaUploadType;
|
||||
use enums::common::visibility::Visibility;
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use log::{error, info, warn};
|
||||
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory;
|
||||
use enums::by_table::generic_inference_jobs::inference_job_type::InferenceJobType;
|
||||
use enums::by_table::generic_inference_jobs::inference_model_type::InferenceModelType;
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ use crate::http_server::requests::request_headers::get_routing_tag_header::get_r
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::http_server::web_utils::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::cleaners::empty_media_file_token_to_null::empty_media_file_token_to_null;
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ use crate::http_server::requests::request_headers::get_routing_tag_header::get_r
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::http_server::web_utils::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::cleaners::empty_media_file_token_to_null::empty_media_file_token_to_null;
|
||||
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ use crate::http_server::deprecated_endpoints::workflows::enqueue::vst_common::vs
|
||||
use crate::http_server::deprecated_endpoints::workflows::enqueue::vst_common::vst_response::VstSuccessResponse;
|
||||
use crate::http_server::requests::request_headers::get_routing_tag_header::get_routing_tag_header;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::allowed_video_style_transfer_access::allowed_video_style_transfer_access;
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ use crate::http_server::deprecated_endpoints::workflows::enqueue::vst_common::vs
|
||||
use crate::http_server::requests::get_request_domain_branding::{get_request_domain_branding, DomainBranding};
|
||||
use crate::http_server::requests::request_headers::get_routing_tag_header::get_routing_tag_header;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::allowed_video_style_transfer_access::allowed_video_style_transfer_access;
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::configs::plans::plan_category::PlanCategory;
|
||||
use crate::http_server::requests::request_headers::get_routing_tag_header::get_routing_tag_header;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::allowed_video_style_transfer_access::allowed_video_style_transfer_access;
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ use crate::configs::plans::plan_category::PlanCategory;
|
||||
use crate::http_server::deprecated_endpoints::workflows::coordinate_workflow_args::{coordinate_workflow_args, CoordinatedWorkflowArgs};
|
||||
use crate::http_server::requests::request_headers::get_routing_tag_header::get_routing_tag_header;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::allowed_video_style_transfer_access::allowed_video_style_transfer_access;
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use log::warn;
|
||||
@@ -88,9 +87,9 @@ impl fmt::Display for LogBrowserSessionError {
|
||||
)]
|
||||
pub async fn log_browser_session_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<LogBrowserSessionRequest>,
|
||||
request: web::Json<LogBrowserSessionRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<LogBrowserSessionSuccessResponse>, LogBrowserSessionError>
|
||||
) -> Result<web::Json<LogBrowserSessionSuccessResponse>, LogBrowserSessionError>
|
||||
{
|
||||
let mut mysql_connection = server_state.mysql_pool
|
||||
.acquire()
|
||||
@@ -132,6 +131,6 @@ pub async fn log_browser_session_handler(
|
||||
log_token: token,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ use http_server_common::request::get_request_ip::get_request_ip;
|
||||
use mysql_queries::queries::api_keys::insert_api_key::{insert_api_key, InsertApiKeyArgs};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
use crate::util::generate_api_key::generate_api_key;
|
||||
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ use mysql_queries::queries::api_keys::get_api_key_by_token::{
|
||||
use tokens::tokens::api_keys::ApiKeyToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Soft-delete an API key by `token`, scoped to the logged-in user.
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ use tokens::tokens::api_keys::ApiKeyToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::endpoints::api_keys::api_key_info_conversion::api_key_row_to_info;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Fetch a single API key by its `token`, scoped to the logged-in user.
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ use mysql_queries::queries::api_keys::list_api_keys_for_user::{
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::endpoints::api_keys::api_key_info_conversion::api_key_row_to_info;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const DEFAULT_LIMIT: u32 = 100;
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ use mysql_queries::queries::api_keys::update_api_key::{update_api_key, UpdateApi
|
||||
use tokens::tokens::api_keys::ApiKeyToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_DESCRIPTION_LEN: usize = 512;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::{UserSessionExtended, UserSessionRoleAndPermissions};
|
||||
use crate::http_server::session::lookup::user_session_extended::{UserSessionExtended, UserSessionRoleAndPermissions};
|
||||
use enums::by_table::users::user_feature_flag::UserFeatureFlag;
|
||||
use std::collections::BTreeSet;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
use crate::http_server::common_responses::user_details_lite::UserDefaultAvatarInfo;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_extended::UserSessionExtended;
|
||||
use crate::http_server::session::lookup::user_session_extended::UserSessionExtended;
|
||||
use tokens::tokens::users::UserToken;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
|
||||
+4
-5
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
@@ -15,7 +14,7 @@ use mysql_queries::queries::users::user_profiles::get_user_profile_by_username::
|
||||
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAXIMUM_KEYS : u32 = 100;
|
||||
@@ -57,9 +56,9 @@ pub struct CreateBetaKeysSuccessResponse {
|
||||
)]
|
||||
pub async fn create_beta_keys_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<CreateBetaKeysRequest>,
|
||||
request: web::Json<CreateBetaKeysRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<CreateBetaKeysSuccessResponse>, CommonWebError>
|
||||
) -> Result<web::Json<CreateBetaKeysSuccessResponse>, CommonWebError>
|
||||
{
|
||||
let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -107,6 +106,6 @@ pub async fn create_beta_keys_handler(
|
||||
beta_keys,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -15,7 +14,7 @@ use tokens::tokens::w2l_results::W2lResultToken;
|
||||
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// For the URL PathInfo
|
||||
@@ -54,10 +53,10 @@ pub struct EditBetaKeyDistributedFlagSuccessResponse {
|
||||
)]
|
||||
pub async fn edit_beta_key_distributed_flag_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<EditBetaKeyDistributedFlagRequest>,
|
||||
request: web::Json<EditBetaKeyDistributedFlagRequest>,
|
||||
path: Path<EditBetaKeyDistributedFlagPathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<EditBetaKeyDistributedFlagSuccessResponse>, CommonWebError>
|
||||
) -> Result<web::Json<EditBetaKeyDistributedFlagSuccessResponse>, CommonWebError>
|
||||
{
|
||||
let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -72,5 +71,5 @@ pub async fn edit_beta_key_distributed_flag_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+4
-5
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -14,7 +13,7 @@ use tokens::tokens::beta_keys::BetaKeyToken;
|
||||
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// For the URL PathInfo
|
||||
@@ -53,10 +52,10 @@ pub struct EditBetaKeyNoteSuccessResponse {
|
||||
)]
|
||||
pub async fn edit_beta_key_note_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<EditBetaKeyNoteRequest>,
|
||||
request: web::Json<EditBetaKeyNoteRequest>,
|
||||
path: Path<EditBetaKeyNotePathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<EditBetaKeyNoteSuccessResponse>, CommonWebError>
|
||||
) -> Result<web::Json<EditBetaKeyNoteSuccessResponse>, CommonWebError>
|
||||
{
|
||||
let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -76,5 +75,5 @@ pub async fn edit_beta_key_note_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Query;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -18,7 +17,7 @@ use tokens::tokens::beta_keys::BetaKeyToken;
|
||||
use crate::http_server::common_responses::pagination_page::PaginationPage;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::common_responses::user_details_lite::UserDetailsLight;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Copy, Clone, Deserialize, ToSchema)]
|
||||
@@ -108,7 +107,7 @@ pub async fn list_beta_keys_handler(
|
||||
http_request: HttpRequest,
|
||||
query: Query<ListBetaKeysQueryParams>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<ListBetaKeysSuccessResponse>, CommonWebError> {
|
||||
) -> Result<web::Json<ListBetaKeysSuccessResponse>, CommonWebError> {
|
||||
let user_session = require_user_session(&http_request, &server_state.session_checker, &server_state.mysql_pool)
|
||||
.await?;
|
||||
|
||||
@@ -213,5 +212,5 @@ pub async fn list_beta_keys_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+5
-6
@@ -1,12 +1,11 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::{web, HttpRequest};
|
||||
use actix_web::web::Json;
|
||||
use log::warn;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use enums::by_table::beta_keys::beta_key_product::BetaKeyProduct;
|
||||
use enums::by_table::users::user_feature_flag::UserFeatureFlag;
|
||||
use http_server_common::request::get_request_ip::get_request_ip;
|
||||
@@ -17,7 +16,7 @@ use mysql_queries::queries::users::user::update::set_user_feature_flags_transact
|
||||
use mysql_queries::queries::users::user_sessions::get_user_session_by_token::SessionUserRecord;
|
||||
|
||||
use crate::http_server::web_utils::try_delete_session_cache::try_delete_session_cache;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
@@ -49,9 +48,9 @@ pub struct RedeemBetaKeySuccessResponse {
|
||||
)]
|
||||
pub async fn redeem_beta_key_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<RedeemBetaKeyRequest>,
|
||||
request: web::Json<RedeemBetaKeyRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<RedeemBetaKeySuccessResponse>, CommonWebError>
|
||||
) -> Result<web::Json<RedeemBetaKeySuccessResponse>, CommonWebError>
|
||||
{
|
||||
let user_session = require_user_session(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -91,7 +90,7 @@ pub async fn redeem_beta_key_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
async fn enroll_in_studio(
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ use mysql_queries::queries::characters::delete_character::delete_character;
|
||||
use mysql_queries::queries::characters::get_character_by_token_including_deleted::get_character_by_token_including_deleted;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Delete a character.
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::update_character::update_character::{update_character, UpdateCharacterArgs};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Edit a character's name or description.
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::common_responses::media::media_domain::MediaDomain;
|
||||
use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder;
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// List characters for the current session.
|
||||
|
||||
+3
-4
@@ -7,7 +7,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use log::warn;
|
||||
@@ -96,9 +95,9 @@ impl fmt::Display for CreateCommentError {
|
||||
)]
|
||||
pub async fn create_comment_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<CreateCommentRequest>,
|
||||
request: web::Json<CreateCommentRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<CreateCommentSuccessResponse>, CreateCommentError>
|
||||
) -> Result<web::Json<CreateCommentSuccessResponse>, CreateCommentError>
|
||||
{
|
||||
// NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from
|
||||
// querying the database for entity existence, this is the next best way to prevent incorrect comment
|
||||
@@ -189,5 +188,5 @@ pub async fn create_comment_handler(
|
||||
comment_token,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -7,7 +7,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
@@ -90,9 +89,9 @@ impl fmt::Display for DeleteCommentError {
|
||||
pub async fn delete_comment_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<DeleteCommentPathInfo>,
|
||||
request: Json<DeleteCommentRequest>,
|
||||
request: web::Json<DeleteCommentRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, DeleteCommentError> {
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, DeleteCommentError> {
|
||||
let mut mysql_connection = server_state.mysql_pool
|
||||
.acquire()
|
||||
.await
|
||||
@@ -166,5 +165,5 @@ pub async fn delete_comment_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+2
-3
@@ -7,7 +7,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
@@ -130,7 +129,7 @@ pub async fn list_comments_handler(
|
||||
_http_request: HttpRequest,
|
||||
path: Path<ListCommentsPathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<ListCommentsSuccessResponse>, ListCommentsError>
|
||||
) -> Result<web::Json<ListCommentsSuccessResponse>, ListCommentsError>
|
||||
{
|
||||
let entity_token = CommentEntityToken::from_entity_type_and_token(
|
||||
path.entity_type, &path.entity_token);
|
||||
@@ -175,5 +174,5 @@ pub async fn list_comments_handler(
|
||||
.collect(),
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use log::{info, warn};
|
||||
@@ -70,8 +69,8 @@ impl fmt::Display for EnqueueGenericDownloadError {
|
||||
|
||||
pub async fn enqueue_generic_download_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<EnqueueGenericDownloadRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<EnqueueGenericDownloadSuccessResponse>, EnqueueGenericDownloadError>
|
||||
request: web::Json<EnqueueGenericDownloadRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<EnqueueGenericDownloadSuccessResponse>, EnqueueGenericDownloadError>
|
||||
{
|
||||
if let Err(_err) = server_state.redis_rate_limiters.model_upload.rate_limit_request(&http_request).await {
|
||||
return Err(EnqueueGenericDownloadError::RateLimited);
|
||||
@@ -151,5 +150,5 @@ pub async fn enqueue_generic_download_handler(
|
||||
job_token: job_token.to_string(),
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+2
-3
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpMessage, HttpRequest, HttpResponse};
|
||||
@@ -88,7 +87,7 @@ impl fmt::Display for GetGenericDownloadJobStatusError {
|
||||
pub async fn get_generic_download_job_status_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<GetGenericDownloadJobStatusPathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<GetGenericDownloadJobStatusSuccessResponse>, GetGenericDownloadJobStatusError>
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<GetGenericDownloadJobStatusSuccessResponse>, GetGenericDownloadJobStatusError>
|
||||
{
|
||||
let maybe_job_status = get_generic_download_job_status(
|
||||
&path.token,
|
||||
@@ -143,5 +142,5 @@ pub async fn get_generic_download_job_status_handler(
|
||||
state: model_for_response,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::{error, warn};
|
||||
@@ -51,9 +50,9 @@ pub struct CreateFeaturedItemSuccessResponse {
|
||||
)]
|
||||
pub async fn create_featured_item_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<CreateFeaturedItemRequest>,
|
||||
request: web::Json<CreateFeaturedItemRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
) -> Result<Json<CreateFeaturedItemSuccessResponse>, CommonWebError>
|
||||
) -> Result<web::Json<CreateFeaturedItemSuccessResponse>, CommonWebError>
|
||||
{
|
||||
// NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from
|
||||
// querying the database for entity existence, this is the next best way to prevent incorrect comment
|
||||
@@ -164,5 +163,5 @@ pub async fn create_featured_item_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::{error, warn};
|
||||
@@ -47,9 +46,9 @@ pub struct DeleteFeaturedItemRequest {
|
||||
)]
|
||||
pub async fn delete_featured_item_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<DeleteFeaturedItemRequest>,
|
||||
request: web::Json<DeleteFeaturedItemRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
|
||||
// NB(bt,2023-12-14): Kasisnu found that we're getting entity type mismatches in production. Apart from
|
||||
// querying the database for entity existence, this is the next best way to prevent incorrect comment
|
||||
@@ -138,5 +137,5 @@ pub async fn delete_featured_item_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use mysql_queries::queries::folders::folder::update_folder_color_code::{
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_COLOR_CODE_LEN: usize = 16;
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ use tokens::tokens::folders::FolderToken;
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Set or clear the custom cover image on a folder.
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use crate::http_server::endpoints::folders::folder::folder_info_conversion::{
|
||||
build_folder_thumbnails_lookup, folder_row_to_info,
|
||||
};
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_NAME_LEN: usize = 255;
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ use mysql_queries::queries::folders::folder::soft_delete_folder::{
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Soft-delete a folder. Children retain their parent pointer and become
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use crate::http_server::endpoints::folders::folder::folder_info_conversion::{
|
||||
build_folder_thumbnails_lookup, folder_row_to_info,
|
||||
};
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Fetch a single folder owned by the logged-in user.
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use crate::http_server::endpoints::folders::folder::folder_info_conversion::{
|
||||
build_folder_thumbnails_lookup, folder_row_to_info,
|
||||
};
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "folders_all";
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use mysql_queries::queries::folders::folder::update_folder_name::{
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_NAME_LEN: usize = 255;
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use mysql_queries::queries::folders::folder::update_folder_has_star::{
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[utoipa::path(
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ use mysql_queries::queries::folders::media_files::recompute_folder_last_media_fi
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_BULK: usize = 500;
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ use mysql_queries::queries::folders::media_files::recompute_folder_last_media_fi
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_BULK: usize = 500;
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ use tokens::tokens::folders::FolderToken;
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_BULK: usize = 500;
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ use crate::http_server::common_responses::media::media_domain::MediaDomain;
|
||||
use crate::http_server::common_responses::media::media_file_cover_image_details::MediaFileCoverImageDetails;
|
||||
use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder;
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "folder_mf";
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ use mysql_queries::queries::folders::subfolder::filter_existing_owned_folder_tok
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_BULK: usize = 500;
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ use mysql_queries::queries::folders::subfolder::bulk_clear_parent_folder::{
|
||||
use tokens::tokens::folders::FolderToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const MAX_BULK: usize = 500;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ use crate::http_server::endpoints::folders::folder::folder_info_conversion::{
|
||||
build_folder_thumbnails_lookup, folder_row_to_info,
|
||||
};
|
||||
use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "subfolders";
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::endpoint_helpers::refund_wallet_after_api_failure::refund_wallet_after_api_failure;
|
||||
use crate::http_server::endpoints::generate::common::map_seedance2pro_web_errors::map_seedance2pro_error_to_web_error;
|
||||
use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::web_utils::get_request_platform_type::get_request_platform_type;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
+3
-4
@@ -3,7 +3,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
@@ -53,8 +52,8 @@ pub struct KillInferenceJobsResponse {
|
||||
|
||||
pub async fn kill_generic_inference_jobs_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<KillInferenceJobsRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<KillInferenceJobsResponse>, CommonWebError>
|
||||
request: web::Json<KillInferenceJobsRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<KillInferenceJobsResponse>, CommonWebError>
|
||||
{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -107,5 +106,5 @@ pub async fn kill_generic_inference_jobs_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ use utoipa::ToSchema;
|
||||
use mysql_queries::queries::generic_inference::web::dismiss_finished_jobs_for_user::dismiss_finished_jobs_for_user;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
|
||||
+2
-3
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpMessage, HttpRequest};
|
||||
@@ -48,7 +47,7 @@ pub struct TerminateInferenceJobSuccessResponse {
|
||||
pub async fn terminate_inference_job_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<TerminateInferenceJobPathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<TerminateInferenceJobSuccessResponse>, CommonWebError>
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<TerminateInferenceJobSuccessResponse>, CommonWebError>
|
||||
{
|
||||
let mut mysql_connection = server_state.mysql_pool.acquire()
|
||||
.await
|
||||
@@ -106,5 +105,5 @@ pub async fn terminate_inference_job_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use mysql_queries::queries::media_files::get::get_media_file::get_media_file;
|
||||
use crate::http_server::common_requests::media_file_token_path_info::MediaFileTokenPathInfo;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::common_responses::simple_response::SimpleResponse;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use mysql_queries::queries::media_files::get::get_media_file::get_media_file;
|
||||
use crate::http_server::common_requests::media_file_token_path_info::MediaFileTokenPathInfo;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::common_responses::simple_response::SimpleResponse;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session::require_user_session;
|
||||
use crate::http_server::web_utils::user_session::require_user_session::require_user_session;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::web::Path;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
use utoipa::ToSchema;
|
||||
@@ -44,8 +43,8 @@ pub struct ChangeMediaFileVisibilityRequest {
|
||||
pub async fn change_media_file_visibility_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<MediaFileTokenPathInfo>,
|
||||
request: Json<ChangeMediaFileVisibilityRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError>
|
||||
request: web::Json<ChangeMediaFileVisibilityRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError>
|
||||
{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -124,5 +123,5 @@ pub async fn change_media_file_visibility_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::web::Path;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
use utoipa::ToSchema;
|
||||
@@ -43,9 +42,9 @@ pub struct RenameMediaFileRequest {
|
||||
pub async fn rename_media_file_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<MediaFileTokenPathInfo>,
|
||||
request: Json<RenameMediaFileRequest>,
|
||||
request: web::Json<RenameMediaFileRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError>{
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError>{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
.maybe_get_user_session(&http_request, &server_state.mysql_pool)
|
||||
@@ -100,5 +99,5 @@ pub async fn rename_media_file_handler(
|
||||
CommonWebError::from_anyhow_error(err)
|
||||
})?;
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::web::Path;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::{info, warn};
|
||||
use utoipa::ToSchema;
|
||||
@@ -49,9 +48,9 @@ pub struct SetMediaFileCoverImageRequest {
|
||||
pub async fn set_media_file_cover_image_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<MediaFileTokenPathInfo>,
|
||||
request: Json<SetMediaFileCoverImageRequest>,
|
||||
request: web::Json<SetMediaFileCoverImageRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError>{
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError>{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
.maybe_get_user_session(&http_request, &server_state.mysql_pool)
|
||||
@@ -153,5 +152,5 @@ pub async fn set_media_file_cover_image_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::web::Path;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
|
||||
@@ -37,8 +36,8 @@ pub struct UpdateMediaFilePathInfo {
|
||||
pub async fn update_media_file_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<UpdateMediaFilePathInfo>,
|
||||
request: Json<UpdateMediaFileRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<UpdateMediaFileResponse>, CommonWebError>
|
||||
request: web::Json<UpdateMediaFileRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<UpdateMediaFileResponse>, CommonWebError>
|
||||
{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -117,5 +116,5 @@ pub async fn update_media_file_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(UpdateMediaFileResponse { success: true }))
|
||||
Ok(web::Json(UpdateMediaFileResponse { success: true }))
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ use crate::http_server::endpoints::media_files::upload::upload_error::MediaFileU
|
||||
use crate::http_server::endpoints::media_files::upload::upload_pmx::extract_and_upload_pmx_files::{extract_and_upload_pmx_files, PmxError};
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Form-multipart request fields.
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ use crate::http_server::endpoints::media_files::upload::upload_studio_shot::extr
|
||||
use crate::http_server::endpoints::media_files::upload::upload_studio_shot::ffmpeg_frames_to_mp4::ffmpeg_frames_to_mp4;
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::http_server::web_utils::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const DEFAULT_FPS : u8 = 12;
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ use crate::http_server::requests::request_headers::get_routing_tag_header::get_r
|
||||
use crate::http_server::requests::request_headers::has_debug_header::has_debug_header;
|
||||
use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format;
|
||||
use crate::http_server::validations::validate_model_title::validate_model_title;
|
||||
use crate::http_server::user_lookup::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::http_server::web_utils::user_session::require_user_session_extended::require_user_session_extended;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
#[derive(Deserialize, ToSchema)]
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ use mysql_queries::queries::staff_audit_logs::insert_staff_audit_log::{
|
||||
use pager::notification::notification_details_builder::NotificationDetailsBuilder;
|
||||
use pager::notification::notification_urgency::NotificationUrgency;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Send a test alert via the pager system. Moderators only.
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ use tokens::tokens::non_unique::debug_logs_event_token::DebugLogEventToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// ── Path params ──
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -26,7 +25,7 @@ use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::web_utils::serialize_as_json_error::serialize_as_json_error;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// For the URL PathInfo
|
||||
@@ -59,7 +58,7 @@ pub async fn moderator_get_token_info_handler(
|
||||
path: Path<ModeratorTokenInfoPath>,
|
||||
http_request: HttpRequest,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<ModeratorTokenInfoResponse>, CommonWebError> {
|
||||
) -> Result<web::Json<ModeratorTokenInfoResponse>, CommonWebError> {
|
||||
|
||||
let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -76,7 +75,7 @@ pub async fn moderator_get_token_info_handler(
|
||||
maybe_payload: maybe_result,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
const LEGACY_USER_TOKEN_PREFIX : &str = "U:";
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::{info, warn};
|
||||
@@ -24,9 +23,9 @@ pub struct AddIpBanRequest {
|
||||
// NB: Not using derive_more::Display since Clion doesn't understand it.
|
||||
pub async fn add_ip_ban_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<AddIpBanRequest>,
|
||||
request: web::Json<AddIpBanRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -71,5 +70,5 @@ pub async fn add_ip_ban_handler(
|
||||
CommonWebError::from_anyhow_error(err)
|
||||
})?;
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -28,9 +27,9 @@ pub struct DeleteIpBanRequest {
|
||||
pub async fn delete_ip_ban_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<DeleteIpBanPathInfo>,
|
||||
request: Json<DeleteIpBanRequest>,
|
||||
request: web::Json<DeleteIpBanRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -78,5 +77,5 @@ pub async fn delete_ip_ban_handler(
|
||||
}
|
||||
};
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+2
-3
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
use actix_web::{web, HttpRequest};
|
||||
@@ -43,7 +42,7 @@ pub async fn get_ip_ban_handler(
|
||||
http_request: HttpRequest,
|
||||
path: Path<GetIpBanPathInfo>,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<GetIpBanResponse>, CommonWebError> {
|
||||
) -> Result<web::Json<GetIpBanResponse>, CommonWebError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -98,5 +97,5 @@ pub async fn get_ip_ban_handler(
|
||||
ip_address_ban: result,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+2
-3
@@ -1,7 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use chrono::{DateTime, Utc};
|
||||
@@ -35,7 +34,7 @@ pub struct IpBanRecordForList {
|
||||
pub async fn list_ip_bans_handler(
|
||||
http_request: HttpRequest,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<ListIpBansResponse>, CommonWebError> {
|
||||
) -> Result<web::Json<ListIpBansResponse>, CommonWebError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -86,5 +85,5 @@ pub async fn list_ip_bans_handler(
|
||||
ip_address_bans: results,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+2
-3
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::warn;
|
||||
@@ -35,7 +34,7 @@ pub struct GetTtsInferenceQueueCountResponse {
|
||||
pub async fn get_tts_inference_queue_count_handler(
|
||||
http_request: HttpRequest,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<GetTtsInferenceQueueCountResponse>, CommonWebError> {
|
||||
) -> Result<web::Json<GetTtsInferenceQueueCountResponse>, CommonWebError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -86,5 +85,5 @@ pub async fn get_tts_inference_queue_count_handler(
|
||||
attempt_failed_count: result.attempt_failed_count,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+2
-2
@@ -47,7 +47,7 @@ impl fmt::Display for GetW2lInferenceQueueCountError {
|
||||
pub async fn get_w2l_inference_queue_count_handler(
|
||||
http_request: HttpRequest,
|
||||
server_state: web::Data<Arc<ServerState>>
|
||||
) -> Result<Json<GetW2lInferenceQueueCountResponse>, GetW2lInferenceQueueCountError> {
|
||||
) -> Result<web::Json<GetW2lInferenceQueueCountResponse>, GetW2lInferenceQueueCountError> {
|
||||
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -92,5 +92,5 @@ pub async fn get_w2l_inference_queue_count_handler(
|
||||
seconds_since_first: result.seconds_since_first,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+3
-4
@@ -2,7 +2,6 @@ use std::fmt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::web::Json;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{web, HttpRequest};
|
||||
use log::{error, warn};
|
||||
@@ -46,8 +45,8 @@ pub struct KillTtsInferenceJobsResponse {
|
||||
|
||||
pub async fn kill_tts_inference_jobs_handler(
|
||||
http_request: HttpRequest,
|
||||
request: Json<KillTtsInferenceJobsRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<Json<KillTtsInferenceJobsResponse>, CommonWebError>
|
||||
request: web::Json<KillTtsInferenceJobsRequest>,
|
||||
server_state: web::Data<Arc<ServerState>>) -> Result<web::Json<KillTtsInferenceJobsResponse>, CommonWebError>
|
||||
{
|
||||
let maybe_user_session = server_state
|
||||
.session_checker
|
||||
@@ -89,5 +88,5 @@ pub async fn kill_tts_inference_jobs_handler(
|
||||
success: true,
|
||||
};
|
||||
|
||||
Ok(Json(response))
|
||||
Ok(web::Json(response))
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use tokens::tokens::prompts::PromptToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// ── Path params ──
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ use mysql_queries::queries::generic_inference::web::list_user_jobs_for_moderatio
|
||||
|
||||
use tokens::tokens::users::UserToken;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// List jobs for a user (moderation)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ use tokens::tokens::staff_audit_logs::StaffAuditLogToken;
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "modstfaud";
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ use mysql_queries::queries::users::user::list::list_subscribing_users_by_signup_
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// List subscribing users by signup date (descending), for moderators.
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ use mysql_queries::queries::users::user::list::list_users_by_signup_date_for_mod
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// List users by signup date (descending), for moderators.
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ use artcraft_api_defs::moderation::user::user_lookup_by_stripe_customer_id::{
|
||||
use mysql_queries::queries::users::user_subscriptions::lookup_users_by_stripe_customer_id::lookup_users_by_stripe_customer_id;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Moderator User Lookup by Stripe Customer ID
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ use mysql_queries::queries::users::user::get::lookup_user_for_moderation::{
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const LEGACY_USER_TOKEN_PREFIX: &str = "U:";
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ use mysql_queries::queries::users::user::update::set_user_ban_status::{
|
||||
use mysql_queries::queries::users::user_profiles::get_user_profile_by_username::get_user_profile_by_username;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ use users::email::email_to_gravatar_hash::email_to_gravatar_hash;
|
||||
use users::email::validate_email_address_format::validate_email_address_format;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ use mysql_queries::queries::users::user_email_changes::list_user_email_changes_f
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "modemchg";
|
||||
|
||||
+4
-4
@@ -23,10 +23,10 @@ use mysql_queries::queries::users::user::update::set_user_feature_flags::{set_us
|
||||
use mysql_queries::queries::users::user_profiles::get_user_profile_by_token::get_user_profile_by_token;
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
use artcraft_api_defs::common::responses::simple_generic_json_success::SimpleGenericJsonSuccess;
|
||||
|
||||
@@ -84,7 +84,7 @@ pub async fn moderator_edit_user_feature_flags_handler(
|
||||
request: Json<EditUserFeatureFlagsRequest>,
|
||||
server_state: Data<Arc<ServerState>>,
|
||||
redis_pool: Data<r2d2::Pool<Client>>,
|
||||
) -> Result<Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
) -> Result<web::Json<SimpleGenericJsonSuccess>, CommonWebError> {
|
||||
|
||||
let user_session = require_moderator(&http_request, &server_state.session_checker, &server_state.mysql_pool).await?;
|
||||
|
||||
@@ -189,5 +189,5 @@ pub async fn moderator_edit_user_feature_flags_handler(
|
||||
let _r: Result<Option<String>, _> = redis.del(&cache_key);
|
||||
}
|
||||
|
||||
Ok(Json(SimpleGenericJsonSuccess { success: true }))
|
||||
Ok(web::Json(SimpleGenericJsonSuccess { success: true }))
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ use utoipa::ToSchema;
|
||||
use enums::by_table::users::user_feature_flag::UserFeatureFlag;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// ── Response ──
|
||||
|
||||
+2
-2
@@ -11,8 +11,8 @@ use mysql_queries::queries::users::user_profiles::get_user_profile_by_token::get
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::session_utils::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::session::lookup::user_session_feature_flags::UserSessionFeatureFlags;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// ── Request ──
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ use mysql_queries::queries::user_referrals::list_global_user_referrals::{
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "modusrref";
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use mysql_queries::queries::user_referrals::list_user_referrals_for_user::{
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "modusrrefu";
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ use mysql_queries::queries::user_impersonation_requests::list_user_impersonation
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "moduserimp";
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ use mysql_queries::queries::user_impersonation_requests::list_user_impersonation
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
const CURSOR_NAME: &str = "modallimp";
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ use mysql_queries::queries::users::user::get::lookup_user_for_moderation::{
|
||||
};
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
// --- Request ---
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ use mysql_queries::queries::users::user_subscriptions::list_stripe_customer_ids_
|
||||
use tokens::tokens::users::UserToken;
|
||||
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// Get all stripe customer ids on file for a user (moderation)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ use mysql_queries::queries::wallet_ledger_entries::list_wallet_ledger_entries_by
|
||||
|
||||
use tokens::tokens::wallets::WalletToken;
|
||||
use crate::http_server::common_responses::common_web_error::CommonWebError;
|
||||
use crate::http_server::user_lookup::user_session::require_moderator::require_moderator;
|
||||
use crate::http_server::web_utils::user_session::require_moderator::require_moderator;
|
||||
use crate::state::server_state::ServerState;
|
||||
|
||||
/// List wallet ledger entries by wallet token (moderation)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user