diff --git a/archives/messages.go b/archives/messages.go index 5a67f1d..8a19be8 100644 --- a/archives/messages.go +++ b/archives/messages.go @@ -21,11 +21,11 @@ const sqlLookupMsgs = ` SELECT rec.visibility, row_to_json(rec) FROM ( SELECT mm.id, - broadcast_id as broadcast, - row_to_json(contact) as contact, + broadcast_id AS broadcast, + row_to_json(contact) AS contact, CASE WHEN oo.is_anon = FALSE THEN ccu.identity ELSE NULL END AS urn, - row_to_json(channel) as channel, - row_to_json(flow) as flow, + row_to_json(channel) AS channel, + row_to_json(flow) AS flow, CASE WHEN direction = 'I' THEN 'in' WHEN direction = 'O' THEN 'out' ELSE NULL END AS direction, CASE WHEN msg_type = 'T' THEN 'text' @@ -48,18 +48,18 @@ SELECT rec.visibility, row_to_json(rec) FROM ( END AS status, CASE WHEN visibility = 'V' THEN 'visible' WHEN visibility = 'A' THEN 'archived' WHEN visibility = 'D' THEN 'deleted' WHEN visibility = 'X' THEN 'deleted' ELSE NULL END as visibility, text, - (select coalesce(jsonb_agg(attach_row), '[]'::jsonb) FROM (select attach_data.attachment[1] as content_type, attach_data.attachment[2] as url FROM (select regexp_matches(unnest(attachments), '^(.*?):(.*)$') attachment) as attach_data) as attach_row) as attachments, - labels_agg.data as labels, - mm.created_on as created_on, - sent_on, - mm.modified_on as modified_on + (SELECT coalesce(jsonb_agg(attach_row), '[]'::jsonb) FROM (SELECT attach_data.attachment[1] AS content_type, attach_data.attachment[2] AS url FROM (SELECT regexp_matches(unnest(attachments), '^(.*?):(.*)$') attachment) AS attach_data) AS attach_row) AS attachments, + labels_agg.data AS labels, + mm.created_on, + mm.sent_on, + mm.modified_on FROM msgs_msg mm JOIN orgs_org oo ON mm.org_id = oo.id - JOIN LATERAL (select uuid, name from contacts_contact cc where cc.id = mm.contact_id) as contact ON True + JOIN LATERAL (SELECT uuid, name FROM contacts_contact cc WHERE cc.id = mm.contact_id) AS contact ON True LEFT JOIN contacts_contacturn ccu ON mm.contact_urn_id = ccu.id - LEFT JOIN LATERAL (select uuid, name from channels_channel ch where ch.id = mm.channel_id) as channel ON True - LEFT JOIN LATERAL (select uuid, name from flows_flow f where f.id = mm.flow_id) as flow ON True - LEFT JOIN LATERAL (select coalesce(jsonb_agg(label_row), '[]'::jsonb) as data from (select uuid, name from msgs_label ml INNER JOIN msgs_msg_labels mml ON ml.id = mml.label_id AND mml.msg_id = mm.id) as label_row) as labels_agg ON True + LEFT JOIN LATERAL (SELECT uuid, name FROM channels_channel ch WHERE ch.id = mm.channel_id) AS channel ON True + LEFT JOIN LATERAL (SELECT uuid, name FROM flows_flow f WHERE f.id = mm.flow_id) AS flow ON True + LEFT JOIN LATERAL (SELECT coalesce(jsonb_agg(label_row), '[]'::jsonb) AS data FROM (SELECT uuid, name FROM msgs_label ml INNER JOIN msgs_msg_labels mml ON ml.id = mml.label_id AND mml.msg_id = mm.id) AS label_row) AS labels_agg ON True WHERE mm.org_id = $1 AND mm.created_on >= $2 AND mm.created_on < $3 ORDER BY created_on ASC, id ASC) rec;` diff --git a/archives/runs.go b/archives/runs.go index 7d1f4b5..4bc2ce0 100644 --- a/archives/runs.go +++ b/archives/runs.go @@ -25,8 +25,8 @@ const sqlLookupRuns = ` SELECT rec.uuid, rec.exited_on, row_to_json(rec) FROM ( SELECT - fr.id as id, - fr.uuid as uuid, + fr.id, + fr.uuid, row_to_json(flow_struct) AS flow, row_to_json(contact_struct) AS contact, fr.responded, @@ -40,7 +40,7 @@ FROM ( AS path_data) ELSE '[]'::jsonb END AS path), - (SELECT coalesce(jsonb_object_agg(values_data.key, values_data.value), '{}'::jsonb) from ( + (SELECT coalesce(jsonb_object_agg(values_data.key, values_data.value), '{}'::jsonb) FROM ( SELECT key, jsonb_build_object('name', value -> 'name', 'value', value -> 'value', 'input', value -> 'input', 'time', (value -> 'created_on')::text::timestamptz, 'category', value -> 'category', 'node', value -> 'node_uuid') as value FROM jsonb_each(fr.results::jsonb)) AS values_data ) AS values, @@ -53,7 +53,7 @@ FROM ( WHEN status = 'X' THEN 'expired' WHEN status = 'F' THEN 'failed' ELSE NULL - END as exit_type + END AS exit_type FROM flows_flowrun fr JOIN LATERAL (SELECT uuid, name FROM flows_flow WHERE flows_flow.id = fr.flow_id) AS flow_struct ON True