mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-02 16:38:14 +00:00
creator user in beta key endpoint
This commit is contained in:
1 parent
622c63a335
commit
f09ec32aee
2 files changed
+38
No files matched your search
@@ -1,4 +1,5 @@
|
||||
use chrono::{DateTime, Utc};
|
||||
use log::info;
|
||||
use sqlx::{FromRow, MySql, MySqlPool, QueryBuilder, Row};
|
||||
use sqlx::mysql::MySqlRow;
|
||||
|
||||
@@ -26,6 +27,11 @@ pub struct BetaKeyListItem {
|
||||
pub product: BetaKeyProduct,
|
||||
pub key_value: String,
|
||||
|
||||
pub creator_user_token: UserToken,
|
||||
pub creator_username: String,
|
||||
pub creator_display_name: String,
|
||||
pub creator_gravatar_hash: String,
|
||||
|
||||
pub maybe_referrer_user_token: Option<UserToken>,
|
||||
pub maybe_referrer_username: Option<String>,
|
||||
pub maybe_referrer_display_name: Option<String>,
|
||||
@@ -77,6 +83,10 @@ pub async fn list_beta_keys(args: ListBetaKeysArgs<'_>) -> AnyhowResult<BetaKeyL
|
||||
token: record.token,
|
||||
product: record.product,
|
||||
key_value: record.key_value,
|
||||
creator_user_token: record.creator_user_token,
|
||||
creator_username: record.creator_username,
|
||||
creator_display_name: record.creator_display_name,
|
||||
creator_gravatar_hash: record.creator_gravatar_hash,
|
||||
maybe_referrer_user_token: record.maybe_referrer_user_token,
|
||||
maybe_referrer_username: record.maybe_referrer_username,
|
||||
maybe_referrer_display_name: record.maybe_referrer_display_name,
|
||||
@@ -119,6 +129,11 @@ SELECT
|
||||
b.product,
|
||||
b.key_value,
|
||||
|
||||
b.creator_user_token,
|
||||
creator.username as creator_username,
|
||||
creator.display_name as creator_display_name,
|
||||
creator.email_gravatar_hash as creator_gravatar_hash,
|
||||
|
||||
b.maybe_referrer_user_token,
|
||||
referrer.username as maybe_referrer_username,
|
||||
referrer.display_name as maybe_referrer_display_name,
|
||||
@@ -134,6 +149,9 @@ SELECT
|
||||
|
||||
FROM beta_keys AS b
|
||||
|
||||
JOIN users AS creator
|
||||
ON b.creator_user_token = creator.token
|
||||
|
||||
LEFT OUTER JOIN users AS referrer
|
||||
ON b.maybe_referrer_user_token = referrer.token
|
||||
|
||||
@@ -142,6 +160,8 @@ LEFT OUTER JOIN users AS redeemer
|
||||
"#
|
||||
);
|
||||
|
||||
info!("query_builder query (wip): {:?}", query_builder.sql());
|
||||
|
||||
let mut first_predicate_added = false;
|
||||
|
||||
if let Some(user_token) = filter_to_referrer_user_token {
|
||||
@@ -213,6 +233,11 @@ struct MediaFileListItemInternal {
|
||||
product: BetaKeyProduct,
|
||||
key_value: String,
|
||||
|
||||
creator_user_token: UserToken,
|
||||
creator_username: String,
|
||||
creator_display_name: String,
|
||||
creator_gravatar_hash: String,
|
||||
|
||||
maybe_referrer_user_token: Option<UserToken>,
|
||||
maybe_referrer_username: Option<String>,
|
||||
maybe_referrer_display_name: Option<String>,
|
||||
@@ -229,6 +254,9 @@ struct MediaFileListItemInternal {
|
||||
|
||||
impl FromRow<'_, MySqlRow> for MediaFileListItemInternal {
|
||||
fn from_row(row: &MySqlRow) -> Result<Self, sqlx::Error> {
|
||||
let creator_user_token : String = row.try_get("creator_user_token")?;
|
||||
let creator_user_token = UserToken::new(creator_user_token);
|
||||
|
||||
let maybe_referrer_user_token : Option<String> = row.try_get("maybe_referrer_user_token")?;
|
||||
let maybe_referrer_user_token = maybe_referrer_user_token.map(|user_token| UserToken::new(user_token));
|
||||
|
||||
@@ -240,6 +268,10 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal {
|
||||
token: BetaKeyToken::new(row.try_get("token")?),
|
||||
product: BetaKeyProduct::try_from_mysql_row(row, "product")?,
|
||||
key_value: row.try_get("key_value")?,
|
||||
creator_user_token,
|
||||
creator_username: row.try_get("creator_username")?,
|
||||
creator_display_name: row.try_get("creator_display_name")?,
|
||||
creator_gravatar_hash: row.try_get("creator_gravatar_hash")?,
|
||||
maybe_referrer_user_token,
|
||||
maybe_referrer_username: row.try_get("maybe_referrer_username")?,
|
||||
maybe_referrer_display_name: row.try_get("maybe_referrer_display_name")?,
|
||||
|
||||
+6
@@ -66,6 +66,7 @@ pub struct BetaKeyItem {
|
||||
pub token: BetaKeyToken,
|
||||
pub product: BetaKeyProduct,
|
||||
pub key_value: String,
|
||||
pub creator: UserDetailsLight,
|
||||
pub maybe_referrer: Option<UserDetailsLight>,
|
||||
pub maybe_redeemer: Option<UserDetailsLight>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
@@ -209,6 +210,11 @@ pub async fn list_beta_keys_handler(
|
||||
token: beta_key.token.clone(),
|
||||
product: beta_key.product,
|
||||
key_value: beta_key.key_value,
|
||||
creator: UserDetailsLight::from_db_fields(
|
||||
&beta_key.creator_user_token,
|
||||
&beta_key.creator_username,
|
||||
&beta_key.creator_display_name,
|
||||
&beta_key.creator_gravatar_hash),
|
||||
maybe_referrer: UserDetailsLight::from_optional_db_fields_owned(
|
||||
beta_key.maybe_referrer_user_token,
|
||||
beta_key.maybe_referrer_username,
|
||||
|
||||
Reference in new issue
Block a user