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:
Geometrically
2020-11-15 19:58:11 -07:00
committed by GitHub
parent da911bfeb8
commit 0500994def
14 changed files with 1830 additions and 332 deletions

View File

@@ -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 {