Upgrade to sqlx 0.7.2 (#736)

* Update to sqlx 0.7.2

* Somehow missed one (and remove queries from other branch)
This commit is contained in:
Jackson Kruger
2023-10-23 14:30:39 -05:00
committed by GitHub
parent 9a8f3d7bad
commit 8803e11945
358 changed files with 8352 additions and 7467 deletions

View File

@@ -804,7 +804,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id.and_then(|x| x.parse::<i64>().ok())
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
AuthProvider::Discord => {
@@ -817,7 +817,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id.and_then(|x| x.parse::<i64>().ok())
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
AuthProvider::Microsoft => {
@@ -830,7 +830,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
AuthProvider::GitLab => {
@@ -843,7 +843,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id.and_then(|x| x.parse::<i64>().ok())
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
AuthProvider::Google => {
@@ -856,7 +856,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
AuthProvider::Steam => {
@@ -869,7 +869,7 @@ impl AuthProvider {
user_id as crate::database::models::UserId,
id.and_then(|x| x.parse::<i64>().ok())
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
}
@@ -1515,7 +1515,7 @@ async fn validate_2fa_code(
user_id as crate::database::models::ids::UserId,
code as i64,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
crate::database::models::User::clear_caches(&[(user_id, None)], redis).await?;
@@ -2265,7 +2265,7 @@ pub async fn link_trolley(
RecipientStatus::Incomplete.as_str(),
user.id.0 as i64,
)
.execute(&mut transaction)
.execute(&mut *transaction)
.await?;
transaction.commit().await?;

View File

@@ -112,7 +112,7 @@ pub async fn issue_session(
.insert(transaction)
.await?;
let session = DBSession::get_id(id, &mut *transaction, redis)
let session = DBSession::get_id(id, &mut **transaction, redis)
.await?
.ok_or_else(|| AuthenticationError::InvalidCredentials)?;

View File

@@ -35,7 +35,7 @@ impl CollectionBuilder {
status: self.status,
projects: self.projects,
};
collection_struct.insert(&mut *transaction).await?;
collection_struct.insert(transaction).await?;
Ok(self.collection_id)
}
@@ -78,7 +78,7 @@ impl Collection {
self.icon_url.as_ref(),
self.status.to_string(),
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let (collection_ids, project_ids): (Vec<_>, Vec<_>) =
@@ -92,7 +92,7 @@ impl Collection {
&collection_ids[..],
&project_ids[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -103,7 +103,7 @@ impl Collection {
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
redis: &RedisPool,
) -> Result<Option<()>, DatabaseError> {
let collection = Self::get(id, &mut *transaction, redis).await?;
let collection = Self::get(id, &mut **transaction, redis).await?;
if let Some(collection) = collection {
sqlx::query!(
@@ -113,7 +113,7 @@ impl Collection {
",
id as CollectionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -123,7 +123,7 @@ impl Collection {
",
id as CollectionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
models::Collection::clear_cache(collection.id, redis).await?;

View File

@@ -21,7 +21,7 @@ macro_rules! generate_ids {
// Check if ID is unique
loop {
let results = sqlx::query!($select_stmnt, id as i64)
.fetch_one(&mut *con)
.fetch_one(&mut **con)
.await?;
if results.exists.unwrap_or(true) || censor.check(&*to_base62(id)) {

View File

@@ -48,7 +48,7 @@ impl Image {
self.thread_message_id.map(|x| x.0),
self.report_id.map(|x| x.0),
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -59,7 +59,7 @@ impl Image {
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
redis: &RedisPool,
) -> Result<Option<()>, DatabaseError> {
let image = Self::get(id, &mut *transaction, redis).await?;
let image = Self::get(id, &mut **transaction, redis).await?;
if let Some(image) = image {
sqlx::query!(
@@ -69,7 +69,7 @@ impl Image {
",
id as ImageId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Image::clear_cache(image.id, redis).await?;
@@ -134,7 +134,7 @@ impl Image {
report_id.map(|x| x.0),
)
.fetch_many(transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async {
Ok(e.right().map(|row| {
let id = ImageId(row.id);

View File

@@ -88,7 +88,7 @@ impl Notification {
&user_ids[..],
&bodies[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Notification::clear_user_notifications_cache(
@@ -262,7 +262,7 @@ impl Notification {
",
&notification_ids_parsed
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|x| UserId(x.user_id))) })
.try_collect::<Vec<_>>()
.await?;
@@ -294,7 +294,7 @@ impl Notification {
",
&notification_ids_parsed
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let affected_users = sqlx::query!(
@@ -305,7 +305,7 @@ impl Notification {
",
&notification_ids_parsed
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|x| UserId(x.user_id))) })
.try_collect::<Vec<_>>()
.await?;

View File

@@ -46,7 +46,7 @@ impl Organization {
self.icon_url,
self.color.map(|x| x as i32),
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -252,7 +252,7 @@ impl Organization {
) -> Result<Option<()>, super::DatabaseError> {
use futures::TryStreamExt;
let organization = Self::get_id(id, &mut *transaction, redis).await?;
let organization = Self::get_id(id, &mut **transaction, redis).await?;
if let Some(organization) = organization {
let projects: Vec<ProjectId> = sqlx::query!(
@@ -263,7 +263,7 @@ impl Organization {
",
id as OrganizationId,
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|m| ProjectId(m.id))) })
.try_collect::<Vec<ProjectId>>()
.await?;
@@ -282,7 +282,7 @@ impl Organization {
",
id as OrganizationId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
TeamMember::clear_cache(organization.team_id, redis).await?;
@@ -294,7 +294,7 @@ impl Organization {
",
organization.team_id as TeamId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -304,7 +304,7 @@ impl Organization {
",
organization.team_id as TeamId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -45,7 +45,7 @@ impl PersonalAccessToken {
self.user_id as UserId,
self.expires
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -259,7 +259,7 @@ impl PersonalAccessToken {
",
id as PatId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -42,7 +42,7 @@ impl DonationUrl {
&platform_ids[..],
&urls[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -99,7 +99,7 @@ impl GalleryItem {
&descriptions[..] as &[Option<String>],
&orderings[..]
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -131,7 +131,7 @@ impl ModCategory {
&category_ids[..],
&is_additionals[..]
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -332,7 +332,7 @@ impl Project {
self.color.map(|x| x as i32),
self.monetization_status.as_str(),
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -343,7 +343,7 @@ impl Project {
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
redis: &RedisPool,
) -> Result<Option<()>, DatabaseError> {
let project = Self::get_id(id, &mut *transaction, redis).await?;
let project = Self::get_id(id, &mut **transaction, redis).await?;
if let Some(project) = project {
Project::clear_cache(id, project.inner.slug, Some(true), redis).await?;
@@ -355,7 +355,7 @@ impl Project {
",
id as ProjectId
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -365,7 +365,7 @@ impl Project {
",
id as ProjectId
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -375,7 +375,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -385,7 +385,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -395,7 +395,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -405,7 +405,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
for version in project.versions {
@@ -418,7 +418,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -429,7 +429,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
models::Thread::remove_full(project.thread_id, transaction).await?;
@@ -441,7 +441,7 @@ impl Project {
",
id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
models::TeamMember::clear_cache(project.inner.team_id, redis).await?;
@@ -454,7 +454,7 @@ impl Project {
",
project.inner.team_id as TeamId,
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|x| UserId(x.user_id))) })
.try_collect::<Vec<_>>()
.await?;
@@ -468,7 +468,7 @@ impl Project {
",
project.inner.team_id as TeamId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))
@@ -787,7 +787,7 @@ impl Project {
id as ProjectId,
&*crate::models::projects::VersionStatus::iterator().filter(|x| x.is_hidden()).map(|x| x.to_string()).collect::<Vec<String>>()
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -812,7 +812,7 @@ impl Project {
id as ProjectId,
&*crate::models::projects::VersionStatus::iterator().filter(|x| x.is_hidden()).map(|x| x.to_string()).collect::<Vec<String>>()
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())

View File

@@ -50,7 +50,7 @@ impl Report {
self.body,
self.reporter as UserId
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -117,7 +117,7 @@ impl Report {
",
id as ReportId
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?;
if !result.exists.unwrap_or(false) {
@@ -131,7 +131,7 @@ impl Report {
",
id as ReportId
)
.fetch_optional(&mut *transaction)
.fetch_optional(&mut **transaction)
.await?;
if let Some(thread_id) = thread_id {
@@ -145,7 +145,7 @@ impl Report {
",
id as ReportId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -28,7 +28,7 @@ impl SessionBuilder {
&self,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> Result<SessionId, DatabaseError> {
let id = generate_session_id(&mut *transaction).await?;
let id = generate_session_id(transaction).await?;
sqlx::query!(
"
@@ -51,7 +51,7 @@ impl SessionBuilder {
self.ip,
self.user_agent,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(id)
@@ -302,7 +302,7 @@ impl Session {
",
id as SessionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -27,7 +27,7 @@ impl TeamBuilder {
self,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> Result<TeamId, super::DatabaseError> {
let team_id = generate_team_id(&mut *transaction).await?;
let team_id = generate_team_id(transaction).await?;
let team = Team { id: team_id };
@@ -38,12 +38,12 @@ impl TeamBuilder {
",
team.id as TeamId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let mut team_member_ids = Vec::new();
for _ in self.members.iter() {
team_member_ids.push(generate_team_member_id(&mut *transaction).await?.0);
team_member_ids.push(generate_team_member_id(transaction).await?.0);
}
let TeamBuilder { members } = self;
let (
@@ -94,7 +94,7 @@ impl TeamBuilder {
&payouts_splits[..],
&orderings[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(team_id)
@@ -411,7 +411,7 @@ impl TeamMember {
self.organization_permissions.map(|p| p.bits() as i64),
self.accepted,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -431,7 +431,7 @@ impl TeamMember {
user_id as UserId,
crate::models::teams::OWNER_ROLE,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -460,7 +460,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
@@ -475,7 +475,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
@@ -490,7 +490,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
@@ -505,7 +505,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
}
@@ -521,7 +521,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
@@ -536,7 +536,7 @@ impl TeamMember {
id as TeamId,
user_id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}

View File

@@ -44,7 +44,7 @@ impl ThreadMessageBuilder {
&self,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> Result<ThreadMessageId, DatabaseError> {
let thread_message_id = generate_thread_message_id(&mut *transaction).await?;
let thread_message_id = generate_thread_message_id(transaction).await?;
sqlx::query!(
"
@@ -60,7 +60,7 @@ impl ThreadMessageBuilder {
serde_json::value::to_value(self.body.clone())?,
self.thread_id as ThreadId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(thread_message_id)
@@ -87,7 +87,7 @@ impl ThreadBuilder {
self.project_id.map(|x| x.0),
self.report_id.map(|x| x.0),
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let (thread_ids, members): (Vec<_>, Vec<_>) =
@@ -102,7 +102,7 @@ impl ThreadBuilder {
&thread_ids[..],
&members[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(thread_id)
@@ -179,7 +179,7 @@ impl Thread {
",
id as ThreadId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
"
@@ -188,7 +188,7 @@ impl Thread {
",
id as ThreadId
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
"
@@ -197,7 +197,7 @@ impl Thread {
",
id as ThreadId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))
@@ -264,7 +264,7 @@ impl ThreadMessage {
id as ThreadMessageId,
serde_json::to_value(MessageBody::Deleted).unwrap_or(serde_json::json!({}))
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -77,7 +77,7 @@ impl User {
self.email_verified,
self.password,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -394,7 +394,7 @@ impl User {
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
redis: &RedisPool,
) -> Result<Option<()>, DatabaseError> {
let user = Self::get_id(id, &mut *transaction, redis).await?;
let user = Self::get_id(id, &mut **transaction, redis).await?;
if let Some(delete_user) = user {
User::clear_caches(&[(id, Some(delete_user.username))], redis).await?;
@@ -411,7 +411,7 @@ impl User {
id as UserId,
crate::models::teams::OWNER_ROLE
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|m| ProjectId(m.id))) })
.try_collect::<Vec<ProjectId>>()
.await?;
@@ -432,7 +432,7 @@ impl User {
id as UserId,
crate::models::teams::OWNER_ROLE
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
}
@@ -445,7 +445,7 @@ impl User {
deleted_user as UserId,
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
use futures::TryStreamExt;
@@ -456,7 +456,7 @@ impl User {
",
id as UserId,
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|m| m.id)) })
.try_collect::<Vec<i64>>()
.await?;
@@ -468,7 +468,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -478,7 +478,7 @@ impl User {
",
&notifications
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -488,7 +488,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -498,7 +498,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -508,7 +508,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -518,7 +518,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -528,7 +528,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -540,7 +540,7 @@ impl User {
id as UserId,
deleted_user as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -550,7 +550,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -560,7 +560,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -570,7 +570,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -580,7 +580,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -590,7 +590,7 @@ impl User {
",
id as UserId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(Some(()))

View File

@@ -81,7 +81,7 @@ impl DependencyBuilder {
&project_ids[..] as &[Option<i64>],
&filenames[..] as &[Option<String>],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -100,7 +100,7 @@ impl DependencyBuilder {
",
version_id as VersionId,
)
.fetch_optional(&mut *transaction)
.fetch_optional(&mut **transaction)
.await?
.map(|x| ProjectId(x.mod_id))
} else {
@@ -125,7 +125,7 @@ impl VersionFileBuilder {
version_id: VersionId,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> Result<FileId, DatabaseError> {
let file_id = generate_file_id(&mut *transaction).await?;
let file_id = generate_file_id(transaction).await?;
let (file_ids, version_ids, urls, filenames, primary, sizes, file_types): (
Vec<_>,
@@ -162,7 +162,7 @@ impl VersionFileBuilder {
&sizes[..],
&file_types[..] as &[Option<String>],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let (file_ids, algorithms, hashes): (Vec<_>, Vec<_>, Vec<_>) = version_files
@@ -182,7 +182,7 @@ impl VersionFileBuilder {
&algorithms[..],
&hashes[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(file_id)
@@ -216,7 +216,7 @@ impl VersionBuilder {
requested_status: self.requested_status,
};
version.insert(&mut *transaction).await?;
version.insert(transaction).await?;
sqlx::query!(
"
@@ -226,7 +226,7 @@ impl VersionBuilder {
",
self.project_id as ProjectId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let VersionBuilder {
@@ -245,13 +245,13 @@ impl VersionBuilder {
.iter()
.map(|l| LoaderVersion::new(*l, version_id))
.collect_vec();
LoaderVersion::insert_many(loader_versions, &mut *transaction).await?;
LoaderVersion::insert_many(loader_versions, transaction).await?;
let game_version_versions = game_versions
.iter()
.map(|v| VersionVersion::new(*v, version_id))
.collect_vec();
VersionVersion::insert_many(game_version_versions, &mut *transaction).await?;
VersionVersion::insert_many(game_version_versions, transaction).await?;
Ok(self.version_id)
}
@@ -280,7 +280,7 @@ impl LoaderVersion {
&loader_ids[..],
&version_ids[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -310,7 +310,7 @@ impl VersionVersion {
&game_version_ids[..],
&version_ids[..],
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -364,7 +364,7 @@ impl Version {
self.featured,
self.status.as_str()
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
Ok(())
@@ -375,7 +375,7 @@ impl Version {
redis: &RedisPool,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
) -> Result<Option<()>, DatabaseError> {
let result = Self::get(id, &mut *transaction, redis).await?;
let result = Self::get(id, &mut **transaction, redis).await?;
let result = if let Some(result) = result {
result
@@ -392,7 +392,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -402,7 +402,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -412,7 +412,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -426,7 +426,7 @@ impl Version {
",
id as VersionId
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -436,7 +436,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
// Sync dependencies
@@ -447,7 +447,7 @@ impl Version {
",
id as VersionId,
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?;
sqlx::query!(
@@ -459,7 +459,7 @@ impl Version {
id as VersionId,
project_id.mod_id,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -467,7 +467,7 @@ impl Version {
DELETE FROM dependencies WHERE mod_dependency_id = NULL AND dependency_id = NULL AND dependency_file_name = NULL
",
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
sqlx::query!(
@@ -476,7 +476,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
// delete version
@@ -487,7 +487,7 @@ impl Version {
",
id as VersionId,
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
crate::database::models::Project::update_game_versions(

View File

@@ -232,7 +232,7 @@ pub async fn trolley_webhook(
",
user.id.0
)
.execute(&mut transaction)
.execute(&mut *transaction)
.await?;
} else {
sqlx::query!(
@@ -246,7 +246,7 @@ pub async fn trolley_webhook(
recipient.status.map(|x| x.as_str()),
user.id.0
)
.execute(&mut transaction).await?;
.execute(&mut *transaction).await?;
}
transaction.commit().await?;
@@ -288,7 +288,7 @@ pub async fn trolley_webhook(
payout.amount,
payout.user_id,
)
.execute(&mut transaction)
.execute(&mut *transaction)
.await?;
}
@@ -301,7 +301,7 @@ pub async fn trolley_webhook(
payment.status.as_str(),
payment.id,
)
.execute(&mut transaction)
.execute(&mut *transaction)
.await?;
transaction.commit().await?;

View File

@@ -82,12 +82,15 @@ pub async fn collection_create(
let collection_id: CollectionId = generate_collection_id(&mut transaction).await?.into();
let initial_project_ids =
project_item::Project::get_many(&collection_create_data.projects, &mut transaction, &redis)
.await?
.into_iter()
.map(|x| x.inner.id.into())
.collect::<Vec<ProjectId>>();
let initial_project_ids = project_item::Project::get_many(
&collection_create_data.projects,
&mut *transaction,
&redis,
)
.await?
.into_iter()
.map(|x| x.inner.id.into())
.collect::<Vec<ProjectId>>();
let collection_builder_actual = collection_item::CollectionBuilder {
collection_id: collection_id.into(),

View File

@@ -379,8 +379,9 @@ async fn project_create_inner(
let mut versions_map = std::collections::HashMap::new();
let mut gallery_urls = Vec::new();
let all_game_versions = models::categories::GameVersion::list(&mut *transaction, redis).await?;
let all_loaders = models::categories::Loader::list(&mut *transaction, redis).await?;
let all_game_versions =
models::categories::GameVersion::list(&mut **transaction, redis).await?;
let all_loaders = models::categories::Loader::list(&mut **transaction, redis).await?;
{
// The first multipart field must be named "data" and contain a
@@ -427,7 +428,7 @@ async fn project_create_inner(
",
slug_project_id as models::ids::ProjectId
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await
.map_err(|e| CreateError::DatabaseError(e.into()))?;
@@ -443,7 +444,7 @@ async fn project_create_inner(
",
create_data.slug
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await
.map_err(|e| CreateError::DatabaseError(e.into()))?;
@@ -482,7 +483,7 @@ async fn project_create_inner(
let project_type_id = models::categories::ProjectType::get_id(
project_create_data.project_type.as_str(),
&mut *transaction,
&mut **transaction,
)
.await?
.ok_or_else(|| {
@@ -647,7 +648,7 @@ async fn project_create_inner(
let id = models::categories::Category::get_id_project(
category,
project_type_id,
&mut *transaction,
&mut **transaction,
)
.await?
.ok_or_else(|| CreateError::InvalidCategory(category.clone()))?;
@@ -660,7 +661,7 @@ async fn project_create_inner(
let id = models::categories::Category::get_id_project(
category,
project_type_id,
&mut *transaction,
&mut **transaction,
)
.await?
.ok_or_else(|| CreateError::InvalidCategory(category.clone()))?;
@@ -680,7 +681,7 @@ async fn project_create_inner(
}],
};
let team_id = team.insert(&mut *transaction).await?;
let team_id = team.insert(transaction).await?;
let status;
if project_create_data.is_draft.unwrap_or(false) {
@@ -703,7 +704,7 @@ async fn project_create_inner(
let client_side_id = models::categories::SideType::get_id(
project_create_data.client_side.as_str(),
&mut *transaction,
&mut **transaction,
)
.await?
.ok_or_else(|| {
@@ -712,7 +713,7 @@ async fn project_create_inner(
let server_side_id = models::categories::SideType::get_id(
project_create_data.server_side.as_str(),
&mut *transaction,
&mut **transaction,
)
.await?
.ok_or_else(|| {
@@ -729,7 +730,7 @@ async fn project_create_inner(
if let Some(urls) = &project_create_data.donation_urls {
for url in urls {
let platform_id =
models::categories::DonationPlatform::get_id(&url.id, &mut *transaction)
models::categories::DonationPlatform::get_id(&url.id, &mut **transaction)
.await?
.ok_or_else(|| {
CreateError::InvalidInput(format!(
@@ -790,12 +791,12 @@ async fn project_create_inner(
let now = Utc::now();
let id = project_builder_actual.insert(&mut *transaction).await?;
let id = project_builder_actual.insert(transaction).await?;
User::clear_project_cache(&[current_user.id.into()], redis).await?;
for image_id in project_create_data.uploaded_images {
if let Some(db_image) =
image_item::Image::get(image_id.into(), &mut *transaction, redis).await?
image_item::Image::get(image_id.into(), &mut **transaction, redis).await?
{
let image: Image = db_image.into();
if !matches!(image.context, ImageContext::Project { .. })
@@ -816,7 +817,7 @@ async fn project_create_inner(
id as models::ids::ProjectId,
image_id.0 as i64
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
image_item::Image::clear_cache(image.id.into(), redis).await?;
@@ -834,7 +835,7 @@ async fn project_create_inner(
project_id: Some(id),
report_id: None,
}
.insert(&mut *transaction)
.insert(transaction)
.await?;
let response = crate::models::projects::Project {

View File

@@ -1517,7 +1517,7 @@ pub async fn bulk_edit_project_categories(
project_id as db_ids::ProjectId,
is_additional
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
let mut mod_categories = Vec::new();
@@ -1553,7 +1553,7 @@ pub async fn edit_project_categories(
let mut mod_categories = Vec::new();
for category in categories {
let category_id = db_models::categories::Category::get_id(category, &mut *transaction)
let category_id = db_models::categories::Category::get_id(category, &mut **transaction)
.await?
.ok_or_else(|| {
ApiError::InvalidInput(format!("Category {} does not exist.", category.clone()))

View File

@@ -98,7 +98,7 @@ pub async fn report_create(
"SELECT EXISTS(SELECT 1 FROM mods WHERE id = $1)",
project_id.0 as i64
)
.fetch_one(&mut transaction)
.fetch_one(&mut *transaction)
.await?;
if !result.exists.unwrap_or(false) {
@@ -117,7 +117,7 @@ pub async fn report_create(
"SELECT EXISTS(SELECT 1 FROM versions WHERE id = $1)",
version_id.0 as i64
)
.fetch_one(&mut transaction)
.fetch_one(&mut *transaction)
.await?;
if !result.exists.unwrap_or(false) {
@@ -136,7 +136,7 @@ pub async fn report_create(
"SELECT EXISTS(SELECT 1 FROM users WHERE id = $1)",
user_id.0 as i64
)
.fetch_one(&mut transaction)
.fetch_one(&mut *transaction)
.await?;
if !result.exists.unwrap_or(false) {

View File

@@ -141,8 +141,9 @@ async fn version_create_inner(
let mut initial_version_data = None;
let mut version_builder = None;
let all_game_versions = models::categories::GameVersion::list(&mut *transaction, redis).await?;
let all_loaders = models::categories::Loader::list(&mut *transaction, redis).await?;
let all_game_versions =
models::categories::GameVersion::list(&mut **transaction, redis).await?;
let all_loaders = models::categories::Loader::list(&mut **transaction, redis).await?;
let user = get_user_from_headers(
&req,
@@ -200,7 +201,7 @@ async fn version_create_inner(
"SELECT EXISTS(SELECT 1 FROM mods WHERE id=$1)",
project_id as models::ProjectId
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?;
if !results.exists.unwrap_or(false) {
@@ -214,14 +215,14 @@ async fn version_create_inner(
let team_member = models::TeamMember::get_from_user_id_project(
project_id,
user.id.into(),
&mut *transaction,
&mut **transaction,
)
.await?;
// Get organization attached, if exists, and the member project permissions
let organization = models::Organization::get_associated_organization_project_id(
project_id,
&mut *transaction,
&mut **transaction,
)
.await?;
@@ -229,7 +230,7 @@ async fn version_create_inner(
models::TeamMember::get_from_user_id(
organization.team_id,
user.id.into(),
&mut *transaction,
&mut **transaction,
)
.await?
} else {
@@ -259,7 +260,7 @@ async fn version_create_inner(
",
project_id as models::ProjectId,
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?
.name;
@@ -332,7 +333,7 @@ async fn version_create_inner(
",
version.project_id as models::ProjectId,
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?
.name;
@@ -395,7 +396,7 @@ async fn version_create_inner(
",
builder.project_id as crate::database::models::ids::ProjectId
)
.fetch_many(&mut *transaction)
.fetch_many(&mut **transaction)
.try_filter_map(|e| async { Ok(e.right().map(|m| models::ids::UserId(m.follower_id))) })
.try_collect::<Vec<models::ids::UserId>>()
.await?;
@@ -409,7 +410,7 @@ async fn version_create_inner(
version_id,
},
}
.insert_many(users, &mut *transaction, redis)
.insert_many(users, transaction, redis)
.await?;
let response = Version {
@@ -461,7 +462,7 @@ async fn version_create_inner(
for image_id in version_data.uploaded_images {
if let Some(db_image) =
image_item::Image::get(image_id.into(), &mut *transaction, redis).await?
image_item::Image::get(image_id.into(), &mut **transaction, redis).await?
{
let image: Image = db_image.into();
if !matches!(image.context, ImageContext::Report { .. })
@@ -482,7 +483,7 @@ async fn version_create_inner(
version_id.0 as i64,
image_id.0 as i64
)
.execute(&mut *transaction)
.execute(&mut **transaction)
.await?;
image_item::Image::clear_cache(image.id.into(), redis).await?;
@@ -494,8 +495,8 @@ async fn version_create_inner(
}
}
models::Project::update_game_versions(project_id, &mut *transaction).await?;
models::Project::update_loaders(project_id, &mut *transaction).await?;
models::Project::update_game_versions(project_id, transaction).await?;
models::Project::update_loaders(project_id, transaction).await?;
models::Project::clear_cache(project_id, None, Some(true), redis).await?;
Ok(HttpResponse::Ok().json(response))
@@ -588,7 +589,7 @@ async fn upload_file_to_version_inner(
let team_member = models::TeamMember::get_from_user_id_project(
version.inner.project_id,
user.id.into(),
&mut *transaction,
&mut **transaction,
)
.await?;
@@ -602,7 +603,7 @@ async fn upload_file_to_version_inner(
models::TeamMember::get_from_user_id(
organization.team_id,
user.id.into(),
&mut *transaction,
&mut **transaction,
)
.await?
} else {
@@ -633,12 +634,12 @@ async fn upload_file_to_version_inner(
",
version.inner.project_id as models::ProjectId,
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?
.name;
let all_game_versions =
models::categories::GameVersion::list(&mut *transaction, &redis).await?;
models::categories::GameVersion::list(&mut **transaction, &redis).await?;
let mut error = None;
while let Some(item) = payload.next().await {
@@ -725,7 +726,7 @@ async fn upload_file_to_version_inner(
"At least one file must be specified".to_string(),
));
} else {
VersionFileBuilder::insert_many(file_builders, version_id, &mut *transaction).await?;
VersionFileBuilder::insert_many(file_builders, version_id, transaction).await?;
}
// Clear version cache
@@ -785,7 +786,7 @@ pub async fn upload_file(
"sha1",
project_id.0 as i64
)
.fetch_one(&mut *transaction)
.fetch_one(&mut **transaction)
.await?
.exists
.unwrap_or(false);
@@ -829,7 +830,7 @@ pub async fn upload_file(
",
&*hashes
)
.fetch_all(&mut *transaction)
.fetch_all(&mut **transaction)
.await?;
for file in &format.files {