diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj index a8ee40c4d..5bcf741f1 100644 --- a/backend/src/app/email.clj +++ b/backend/src/app/email.clj @@ -226,8 +226,8 @@ [:priority {:optional true} [:enum :high :low]] [:extra-data {:optional true} ::sm/text]]) -(def ^:private valid-context? - (sm/validator schema:context)) +(def ^:private check-context + (sm/check-fn schema:context)) (defn template-factory [& {:keys [id schema]}] @@ -236,10 +236,8 @@ (sm/check-fn schema) (constantly nil))] (fn [context] - (assert (valid-context? context) "expected a valid context") - (check-fn context) - - (let [email (build-email-template id context)] + (let [context (-> context check-context check-fn) + email (build-email-template id context)] (when-not email (ex/raise :type :internal :code :email-template-does-not-exists @@ -271,7 +269,7 @@ "Schedule an already defined email to be sent using asynchronously using worker task." [{:keys [::conn ::factory] :as context}] - (assert (db/connection? conn) "expected a valid database connection") + (assert (db/connectable? conn) "expected a valid database connection or pool") (let [email (if factory (factory context) @@ -348,7 +346,7 @@ [:subject ::sm/text] [:content ::sm/text]]) -(def feedback +(def user-feedback "A profile feedback email." (template-factory :id ::feedback diff --git a/backend/src/app/rpc/commands/feedback.clj b/backend/src/app/rpc/commands/feedback.clj index c641a4ff4..e3525ded4 100644 --- a/backend/src/app/rpc/commands/feedback.clj +++ b/backend/src/app/rpc/commands/feedback.clj @@ -17,7 +17,7 @@ [app.rpc.doc :as-alias doc] [app.util.services :as sv])) -(declare ^:private send-feedback!) +(declare ^:private send-user-feedback!) (def ^:private schema:send-user-feedback [:map {:title "send-user-feedback"} @@ -34,14 +34,16 @@ :hint "feedback not enabled")) (let [profile (profile/get-profile pool profile-id)] - (send-feedback! pool profile params) + (send-user-feedback! pool profile params) nil)) -(defn- send-feedback! +(defn- send-user-feedback! [pool profile params] - (let [dest (cf/get :feedback-destination)] + (let [dest (or (cf/get :user-feedback-destination) + ;; LEGACY + (cf/get :feedback-destination))] (eml/send! {::eml/conn pool - ::eml/factory eml/feedback + ::eml/factory eml/user-feedback :from dest :to dest :profile profile