summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-09-18 12:55:26 +0000
committerSanto Cariotti <santo@dcariotti.me>2022-09-18 12:55:26 +0000
commit0343c9b700c145d3f76b6fffc0c3141e516a78c9 (patch)
tree52513c52e6fb3f37183ed23106cead484eb43b32
parentfa7ca7224a16a1106c7a2fb30e14616ab283c177 (diff)
Fix aggregator for model with no uploads
-rw-r--r--src/models/model.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/models/model.rs b/src/models/model.rs
index cf539c9..f8e7057 100644
--- a/src/models/model.rs
+++ b/src/models/model.rs
@@ -130,10 +130,10 @@ impl Model {
SELECT
models.*,
json_build_object('id', users.id, 'email', users.email, 'username', users.username, 'is_staff', users.is_staff) as author,
- json_agg(uploads.*) as uploads
+ json_agg(uploads.*) filter (where uploads.* is not null) as uploads
FROM models
JOIN users ON users.id = models.author_id
- JOIN uploads ON uploads.model_id = models.id
+ LEFT JOIN uploads ON uploads.model_id = models.id
WHERE models.id = $1
GROUP BY models.id, users.id
"#)
@@ -152,10 +152,10 @@ impl Model {
SELECT
models.*,
json_build_object('id', users.id, 'email', users.email, 'username', users.username, 'is_staff', users.is_staff) as author,
- json_agg(uploads.*) as uploads
+ json_agg(uploads.*) filter (where uploads.* is not null) as uploads
FROM models
JOIN users ON users.id = models.author_id
- JOIN uploads ON uploads.model_id = models.id
+ LEFT JOIN uploads ON uploads.model_id = models.id
GROUP BY models.id, users.id
LIMIT $1 OFFSET $2
"#)