fixed issue (#772)

This commit is contained in:
Wyatt Verchere
2023-11-30 10:30:30 -08:00
committed by GitHub
parent d4f9c97cca
commit ed33dd2127
3 changed files with 32 additions and 27 deletions

View File

@@ -1,17 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO payouts_values (user_id, mod_id, amount, created)\n SELECT * FROM UNNEST ($1::bigint[], $2::bigint[], $3::numeric[], $4::timestamptz[])\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8Array",
"Int8Array",
"NumericArray",
"TimestamptzArray"
]
},
"nullable": []
},
"hash": "2efd0efe9ce16b2da01d9bcc1603e3a7ad0f9a1e5a457770608bc41dbb83f2dd"
}

View File

@@ -13,6 +13,7 @@ use rust_decimal::Decimal;
use serde::de::DeserializeOwned; use serde::de::DeserializeOwned;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::Value; use serde_json::Value;
use sqlx::postgres::PgQueryResult;
use sqlx::PgPool; use sqlx::PgPool;
use std::collections::HashMap; use std::collections::HashMap;
use std::sync::Arc; use std::sync::Arc;
@@ -734,3 +735,25 @@ pub async fn process_payout(
Ok(()) Ok(())
} }
// Used for testing, should be the same as the above function
pub async fn insert_payouts(
insert_user_ids: Vec<i64>,
insert_project_ids: Vec<i64>,
insert_payouts: Vec<Decimal>,
insert_starts: Vec<DateTime<Utc>>,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> sqlx::Result<PgQueryResult> {
sqlx::query!(
"
INSERT INTO payouts_values (user_id, mod_id, amount, created)
SELECT * FROM UNNEST ($1::bigint[], $2::bigint[], $3::numeric[], $4::timestamptz[])
",
&insert_user_ids[..],
&insert_project_ids[..],
&insert_payouts[..],
&insert_starts[..]
)
.execute(&mut **transaction)
.await
}

View File

@@ -10,6 +10,7 @@ use common::{
use itertools::Itertools; use itertools::Itertools;
use labrinth::models::ids::base62_impl::parse_base62; use labrinth::models::ids::base62_impl::parse_base62;
use labrinth::models::teams::ProjectPermissions; use labrinth::models::teams::ProjectPermissions;
use labrinth::queue::payouts;
use rust_decimal::{prelude::ToPrimitive, Decimal}; use rust_decimal::{prelude::ToPrimitive, Decimal};
mod common; mod common;
@@ -55,19 +56,17 @@ pub async fn analytics_revenue() {
insert_starts.push(*time); insert_starts.push(*time);
} }
sqlx::query!( let mut transaction = pool.begin().await.unwrap();
" payouts::insert_payouts(
INSERT INTO payouts_values (user_id, mod_id, amount, created) insert_user_ids,
SELECT * FROM UNNEST ($1::bigint[], $2::bigint[], $3::numeric[], $4::timestamptz[]) insert_project_ids,
", insert_payouts,
&insert_user_ids[..], insert_starts,
&insert_project_ids[..], &mut transaction,
&insert_payouts[..],
&insert_starts[..]
) )
.execute(&pool)
.await .await
.unwrap(); .unwrap();
transaction.commit().await.unwrap();
let day = 86400; let day = 86400;