You've already forked AstralRinth
forked from didirus/AstralRinth
Moderation + Mod Editing (#101)
* Moderation + Mod Editing WIP * Run prepare, fix perms * Make it compile * Finish moderation and edit routes * More fixes * Use better queries * Final Fixes
This commit is contained in:
@@ -80,6 +80,7 @@ impl VersionBuilder {
|
||||
date_published: chrono::Utc::now(),
|
||||
downloads: 0,
|
||||
release_channel: self.release_channel,
|
||||
accepted: false,
|
||||
};
|
||||
|
||||
version.insert(&mut *transaction).await?;
|
||||
@@ -152,6 +153,7 @@ pub struct Version {
|
||||
pub date_published: chrono::DateTime<chrono::Utc>,
|
||||
pub downloads: i32,
|
||||
pub release_channel: ChannelId,
|
||||
pub accepted: bool,
|
||||
}
|
||||
|
||||
impl Version {
|
||||
@@ -164,12 +166,13 @@ impl Version {
|
||||
INSERT INTO versions (
|
||||
id, mod_id, author_id, name, version_number,
|
||||
changelog_url, date_published,
|
||||
downloads, release_channel
|
||||
downloads, release_channel, accepted
|
||||
)
|
||||
VALUES (
|
||||
$1, $2, $3, $4, $5,
|
||||
$6, $7,
|
||||
$8, $9
|
||||
$8, $9,
|
||||
$10
|
||||
)
|
||||
",
|
||||
self.id as VersionId,
|
||||
@@ -181,6 +184,7 @@ impl Version {
|
||||
self.date_published,
|
||||
self.downloads,
|
||||
self.release_channel as ChannelId,
|
||||
self.accepted
|
||||
)
|
||||
.execute(&mut *transaction)
|
||||
.await?;
|
||||
@@ -291,6 +295,15 @@ impl Version {
|
||||
.execute(exec)
|
||||
.await?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM dependencies WHERE dependent_id = $1
|
||||
",
|
||||
id as VersionId,
|
||||
)
|
||||
.execute(exec)
|
||||
.await?;
|
||||
|
||||
Ok(Some(()))
|
||||
}
|
||||
|
||||
@@ -354,7 +367,7 @@ impl Version {
|
||||
"
|
||||
SELECT v.mod_id, v.author_id, v.name, v.version_number,
|
||||
v.changelog_url, v.date_published, v.downloads,
|
||||
v.release_channel
|
||||
v.release_channel, v.accepted
|
||||
FROM versions v
|
||||
WHERE v.id = $1
|
||||
",
|
||||
@@ -374,6 +387,7 @@ impl Version {
|
||||
date_published: row.date_published,
|
||||
downloads: row.downloads,
|
||||
release_channel: ChannelId(row.release_channel),
|
||||
accepted: row.accepted,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
@@ -394,7 +408,7 @@ impl Version {
|
||||
"
|
||||
SELECT v.id, v.mod_id, v.author_id, v.name, v.version_number,
|
||||
v.changelog_url, v.date_published, v.downloads,
|
||||
v.release_channel
|
||||
v.release_channel, accepted
|
||||
FROM versions v
|
||||
WHERE v.id IN (SELECT * FROM UNNEST($1::bigint[]))
|
||||
",
|
||||
@@ -412,6 +426,7 @@ impl Version {
|
||||
date_published: v.date_published,
|
||||
downloads: v.downloads,
|
||||
release_channel: ChannelId(v.release_channel),
|
||||
accepted: v.accepted,
|
||||
}))
|
||||
})
|
||||
.try_collect::<Vec<Version>>()
|
||||
@@ -431,7 +446,7 @@ impl Version {
|
||||
"
|
||||
SELECT v.mod_id, v.author_id, v.name, v.version_number,
|
||||
v.changelog_url, v.date_published, v.downloads,
|
||||
release_channels.channel
|
||||
release_channels.channel, v.accepted
|
||||
FROM versions v
|
||||
INNER JOIN release_channels ON v.release_channel = release_channels.id
|
||||
WHERE v.id = $1
|
||||
@@ -519,6 +534,7 @@ impl Version {
|
||||
files,
|
||||
loaders,
|
||||
game_versions,
|
||||
accepted: row.accepted,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
@@ -570,6 +586,7 @@ pub struct QueryVersion {
|
||||
pub files: Vec<QueryFile>,
|
||||
pub game_versions: Vec<String>,
|
||||
pub loaders: Vec<String>,
|
||||
pub accepted: bool,
|
||||
}
|
||||
|
||||
pub struct QueryFile {
|
||||
|
||||
Reference in New Issue
Block a user