From b20147255a5059cd0a5595b7ab03055b17267aa1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 24 Apr 2025 15:02:46 +0200 Subject: [PATCH] :sparkles: Add better approach for returning subscription on teams response --- backend/src/app/rpc/commands/teams.clj | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 4304aa39d4..2cf06564c4 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -76,9 +76,10 @@ (perms/make-check-fn has-read-permissions?)) (defn decode-row - [{:keys [features] :as row}] + [{:keys [features subscription] :as row}] (cond-> row - (some? features) (assoc :features (db/decode-pgarray features #{})))) + (some? features) (assoc :features (db/decode-pgarray features #{})) + (some? subscription) (assoc :subscription (db/decode-transit-pgobject subscription)))) ;; FIXME: move @@ -143,12 +144,14 @@ tp.is_admin, tp.can_edit, (t.id = ?) AS is_default, - CASE COALESCE(p.props->'~:subscription'->>'~:status', 'unknown') - WHEN 'unknown' THEN false - WHEN 'canceled' THEN false - WHEN 'unpaid' THEN false - ELSE true - END AS is_subscription_active + + jsonb_build_object( + '~:type', COALESCE(p.props->'~:subscription'->>'~:type', 'professional'), + '~:status', CASE COALESCE(p.props->'~:subscription'->>'~:type', 'professional') + WHEN 'professional' THEN 'active' + ELSE COALESCE(p.props->'~:subscription'->>'~:status', 'incomplete') + END + ) AS subscription FROM team_profile_rel AS tp JOIN team AS t ON (t.id = tp.team_id) JOIN team_profile_rel AS tpr