aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-19 12:53:03 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-19 12:53:03 +0200
commit30c309e15d3211e7d0e8a8a2752c3e9afa0a0638 (patch)
tree11ce615f88bf73d736480a7173aab12ed05156a1 /src
parent678d9a58be42c9375511c402642fd621029172c5 (diff)
downloadbokf-0.1.32.tar.gz
bokf-0.1.32.zip
attachments: list every link when filtering by voucherv0.1.32
Diffstat (limited to 'src')
-rw-r--r--src/commands.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/commands.c b/src/commands.c
index 500c9a3..f03e0e4 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -3484,12 +3484,15 @@ static yyjson_mut_val *h_attachment_list(struct req *r)
r->db,
"SELECT a.id,a.filename,a.mime,a.size_bytes,a.created_at,a.sha256,"
"(SELECT va.voucher_id FROM voucher_attachments va"
- " WHERE va.org_id=a.org_id AND va.attachment_id=a.id LIMIT 1)"
+ " WHERE va.org_id=a.org_id AND va.attachment_id=a.id"
+ " AND (?2=0 OR va.voucher_id=?2)"
+ " ORDER BY va.voucher_id LIMIT 1)"
" FROM attachments a WHERE a.org_id=?1"
- " AND (?2=0 OR (SELECT va.voucher_id FROM voucher_attachments va"
- " WHERE va.org_id=a.org_id AND va.attachment_id=a.id LIMIT 1)=?2)"
- " AND (?3=0 OR NOT EXISTS(SELECT 1 FROM voucher_attachments va2"
- " WHERE va2.org_id=a.org_id AND va2.attachment_id=a.id))"
+ " AND (?2=0 OR EXISTS(SELECT 1 FROM voucher_attachments va2"
+ " WHERE va2.org_id=a.org_id AND va2.attachment_id=a.id"
+ " AND va2.voucher_id=?2))"
+ " AND (?3=0 OR NOT EXISTS(SELECT 1 FROM voucher_attachments va3"
+ " WHERE va3.org_id=a.org_id AND va3.attachment_id=a.id))"
" AND a.id>?4 ORDER BY a.id LIMIT ?5",
-1, &st, NULL) != SQLITE_OK)
return fail(r, "INTERNAL", "database error");