diff --git a/sqlx-data.json b/sqlx-data.json
index 0ff8d55f..097163cb 100644
--- a/sqlx-data.json
+++ b/sqlx-data.json
@@ -59,6 +59,46 @@
"nullable": []
}
},
+ "0a3f99eae57c0c3d10aa0014db7fb8a33952da3e7d00949a25ade843859272cb": {
+ "query": "\n SELECT id\n FROM release_channels\n WHERE channel = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "id",
+ "type_info": "Int4"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Text"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
+ "0ca11a32b2860e4f5c3d20892a5be3cb419e084f42ba0f98e09b9995027fcc4e": {
+ "query": "\n SELECT id FROM statuses\n WHERE status = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "id",
+ "type_info": "Int4"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Text"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
"0da158263c6588a83421154342db2ede16b9abf9931827790b9fcaf71080c324": {
"query": "\n SELECT u.id, u.username FROM users u\n INNER JOIN team_members tm ON tm.user_id = u.id\n WHERE tm.team_id = $2 AND tm.role = $1\n ",
"describe": {
@@ -86,6 +126,26 @@
]
}
},
+ "0ef06dd5094da2458c558b115ed272da338ade372e717d8580cdf52c0000f80c": {
+ "query": "\n SELECT user_id FROM team_members\n WHERE team_id = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "user_id",
+ "type_info": "Int8"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
"1016a0bf55e9474357ac5ef725605ac337e82e1a2b93726ae795ec48f0d696dd": {
"query": "\n SELECT v.mod_id, v.author_id, v.name, v.version_number,\n v.changelog_url, v.date_published, v.downloads,\n release_channels.channel\n FROM versions v\n INNER JOIN release_channels ON v.release_channel = release_channels.id\n WHERE v.id = $1\n ",
"describe": {
@@ -519,6 +579,46 @@
"nullable": []
}
},
+ "40597b84607e77809c13ffa9c6b0b1674bd6378a4737a8f6118e91ae2ede7e4a": {
+ "query": "\n SELECT id\n FROM release_channels\n WHERE channel = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "id",
+ "type_info": "Int4"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Text"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
+ "42e072309779598d0c213280dd8052d1b4889cb24ef5204ca13b74f693b94328": {
+ "query": "\n SELECT user_id FROM team_members tm\n INNER JOIN mods ON mods.team_id = tm.team_id\n WHERE mods.id = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "user_id",
+ "type_info": "Int8"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Int8"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
"4411f2aefd43881450da34db81e826110ac86c3a6cef9fd6a3e9e341508d1f09": {
"query": "\n SELECT id FROM versions\n WHERE mod_id = $1\n ",
"describe": {
@@ -554,6 +654,26 @@
"nullable": []
}
},
+ "4c98e4441f8168d00bc7ff47951f15b44ff884cff6fc484645c74bfe3e7e7020": {
+ "query": "\n SELECT id\n FROM statuses\n WHERE status = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "id",
+ "type_info": "Int4"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Text"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
"4c99c0840159d18e88cd6094a41117258f2337346c145d926b5b610c76b5125f": {
"query": "\n SELECT c.category\n FROM mods_categories mc\n INNER JOIN categories c ON mc.joining_category_id=c.id\n WHERE mc.joining_mod_id = $1\n ",
"describe": {
@@ -1406,6 +1526,26 @@
]
}
},
+ "cf031f19c7882833a8a30348ee90175a5d8b1fb7d9645c5deb2dc68c6eb33683": {
+ "query": "\n SELECT id FROM release_channels\n WHERE channel = $1\n ",
+ "describe": {
+ "columns": [
+ {
+ "ordinal": 0,
+ "name": "id",
+ "type_info": "Int4"
+ }
+ ],
+ "parameters": {
+ "Left": [
+ "Text"
+ ]
+ },
+ "nullable": [
+ false
+ ]
+ }
+ },
"d0172d12dce3d8ddc888893ec1cdd93ad232685e80f706e70dea22c85d96df63": {
"query": "SELECT team_id FROM mods WHERE id=$1",
"describe": {
diff --git a/src/database/models/ids.rs b/src/database/models/ids.rs
index e5b7784d..364c27c2 100644
--- a/src/database/models/ids.rs
+++ b/src/database/models/ids.rs
@@ -88,7 +88,7 @@ generate_ids!(
UserId
);
-#[derive(Copy, Clone, Debug, Type)]
+#[derive(Copy, Clone, Debug, PartialEq, Eq, Type)]
#[sqlx(transparent)]
pub struct UserId(pub i64);
diff --git a/src/database/models/mod.rs b/src/database/models/mod.rs
index 75f32ee4..e0f80a5b 100644
--- a/src/database/models/mod.rs
+++ b/src/database/models/mod.rs
@@ -31,3 +31,47 @@ pub enum DatabaseError {
)]
InvalidIdentifier(String),
}
+
+impl ids::ChannelId {
+ pub async fn get_id<'a, E>(
+ channel: &str,
+ exec: E,
+ ) -> Result