From 18f34b4f83b1c7c0fa6a271fb214da52041c9ee6 Mon Sep 17 00:00:00 2001 From: Geometrically <18202329+Geometrically@users.noreply.github.com> Date: Sat, 5 Mar 2022 13:09:19 -0700 Subject: [PATCH] Fix dep route again (#316) --- sqlx-data.json | 64 +++++++++++++++++++++--------------------- src/routes/projects.rs | 13 ++++++--- 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/sqlx-data.json b/sqlx-data.json index 19de35592..977950ea4 100644 --- a/sqlx-data.json +++ b/sqlx-data.json @@ -731,38 +731,6 @@ "nullable": [] } }, - "298dd4ca44f2f154897ac7e1dca5a4c8f0528805fb10aae991e20b7daf6b3093": { - "query": "\n SELECT d.dependency_id, vd.mod_id, d.mod_dependency_id\n FROM versions v\n INNER JOIN dependencies d ON d.dependent_id = v.id\n INNER JOIN versions vd ON d.dependency_id = vd.id\n WHERE v.mod_id = $1\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "dependency_id", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "mod_id", - "type_info": "Int8" - }, - { - "ordinal": 2, - "name": "mod_dependency_id", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true, - false, - true - ] - } - }, "29e657d26f0fb24a766f5b5eb6a94d01d1616884d8ca10e91536e974d5b585a6": { "query": "\n INSERT INTO loaders_versions (loader_id, version_id)\n VALUES ($1, $2)\n ", "describe": { @@ -3796,6 +3764,38 @@ "nullable": [] } }, + "b464a2ca83b073d251ae2a5bd3ed94167c2dfc2046b38b6ef3aa30c46aaf5ad9": { + "query": "\n SELECT d.dependency_id, vd.mod_id, d.mod_dependency_id\n FROM versions v\n INNER JOIN dependencies d ON d.dependent_id = v.id\n LEFT JOIN versions vd ON d.dependency_id = vd.id\n WHERE v.mod_id = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "dependency_id", + "type_info": "Int8" + }, + { + "ordinal": 1, + "name": "mod_id", + "type_info": "Int8" + }, + { + "ordinal": 2, + "name": "mod_dependency_id", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [ + true, + false, + true + ] + } + }, "b69a6f42965b3e7103fcbf46e39528466926789ff31e9ed2591bb175527ec169": { "query": "\n DELETE FROM users\n WHERE id = $1\n ", "describe": { diff --git a/src/routes/projects.rs b/src/routes/projects.rs index 24d867b41..935f6b251 100644 --- a/src/routes/projects.rs +++ b/src/routes/projects.rs @@ -115,7 +115,7 @@ pub async fn dependency_list( SELECT d.dependency_id, vd.mod_id, d.mod_dependency_id FROM versions v INNER JOIN dependencies d ON d.dependent_id = v.id - INNER JOIN versions vd ON d.dependency_id = vd.id + LEFT JOIN versions vd ON d.dependency_id = vd.id WHERE v.mod_id = $1 ", id as database::models::ProjectId @@ -125,14 +125,18 @@ pub async fn dependency_list( Ok(e.right().map(|x| { ( x.dependency_id.map(database::models::VersionId), - database::models::ProjectId(x.mod_id), + if x.mod_id == 0 { + None + } else { + Some(database::models::ProjectId(x.mod_id)) + }, x.mod_dependency_id.map(database::models::ProjectId), ) })) }) .try_collect::, - database::models::ProjectId, + Option, Option, )>>() .await?; @@ -143,13 +147,14 @@ pub async fn dependency_list( .iter() .map(|x| if x.0.is_none() { if let Some(mod_dependency_id) = x.2 { - mod_dependency_id + Some(mod_dependency_id) } else { x.1 } } else { x.1 }) + .flatten() .collect(), &**pool, ),