Shared functions for channel implementations. | (ns metabase.channel.shared (:require [malli.error :as me] [medley.core :as m] [metabase.util.i18n :refer [tru]] [metabase.util.malli.registry :as mr])) |
Validate a value against a schema and throw an exception if it's invalid. The :errors key are used on the UI to display field-specific error messages. | (defn validate-channel-details [schema value] (when-let [errors (some-> (mr/explain schema value) me/humanize)] (throw (ex-info (tru "Invalid channel details") {:errors errors})))) |
(defn- maybe-deref [x] (if (instance? clojure.lang.IDeref x) @x x)) | |
Realize the data rows in a [[metabase.notification.payload.execute/Part]] | (defn realize-data-rows [part] (when part (m/update-existing-in part [:result :data :rows] maybe-deref))) |