public agreement support for transparency

This commit is contained in:
2026-05-13 20:01:34 +00:00
parent d4c5b73c13
commit ad80bd2872
2 changed files with 13 additions and 5 deletions

View File

@@ -0,0 +1 @@
ALTER TABLE public.agreement ADD COLUMN public BOOLEAN DEFAULT FALSE;

View File

@@ -72,8 +72,11 @@ async function getAgreement(client, userId, id, key) {
FROM agreement a FROM agreement a
WHERE ${whereClause} WHERE ${whereClause}
AND ( AND (
a.user_id = $2 (
OR a.user_id IS NULL a.user_id = $2
OR a.user_id IS NULL
)
OR a.public IS TRUE
) )
` `
const res = await client.query(sql, [ const res = await client.query(sql, [
@@ -169,8 +172,9 @@ async function get(input, userId) {
return response; return response;
} }
async function save(client, userId, agreement) { async function save(client, userId, agreement, publicAgreement) {
await client.query(`BEGIN`); await client.query(`BEGIN`);
const isPublic = publicAgreement ? true : false;
const res = await client.query(` const res = await client.query(`
INSERT INTO agreement ( INSERT INTO agreement (
user_id, user_id,
@@ -178,6 +182,7 @@ async function save(client, userId, agreement) {
parent, parent,
agreement_id_uuid, agreement_id_uuid,
context, context,
public,
created, created,
created_as_ts created_as_ts
) VALUES ( ) VALUES (
@@ -187,7 +192,8 @@ async function save(client, userId, agreement) {
$4, $4,
$5, $5,
$6, $6,
$7 $7,
$8
) RETURNING id; ) RETURNING id;
`, [ `, [
userId, userId,
@@ -195,6 +201,7 @@ async function save(client, userId, agreement) {
agreement.parent, agreement.parent,
agreement.agreementId, agreement.agreementId,
agreement["@context"], agreement["@context"],
isPublic,
agreement.created, agreement.created,
new Date(agreement.created).toISOString(), new Date(agreement.created).toISOString(),
]); ]);
@@ -431,7 +438,7 @@ async function create(input, userId, _client, uuid) {
if (uuid) { if (uuid) {
agreement.agreementId = uuid; agreement.agreementId = uuid;
} }
await save(client, userId, agreement); await save(client, userId, agreement, input.public);
response = { response = {
message: `created and saved: ${agreement.agreementId}`, message: `created and saved: ${agreement.agreementId}`,
data: agreement, data: agreement,