0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-18 10:41:29 -05:00

🎉 Add better reply-to handling on feedback module.

This commit is contained in:
Andrey Antukh 2021-03-01 13:16:06 +01:00
parent fe114d2e66
commit 9fb8ba2ff1
4 changed files with 18 additions and 17 deletions

View file

@ -1 +1 @@
[PENPOT FEEDBACK]: {{subject|abbreviate:19}} (from {% if profile %}{{ profile.email }}{% else %}{{from}}{% endif %})
[PENPOT FEEDBACK]: {{subject|abbreviate:19}} (from {{email}})

View file

@ -1,8 +1,7 @@
{% if profile %}
Feedback from: {{profile.fullname}} <{{profile.email}}>
Profile ID: {{profile.id}}
Feedback profile: {{profile.fullname}} <{{profile.email}}> / {{profile.id}}
{% else %}
Feedback from: {{from}}
Feedback from: {{email}}
{% endif %}
Subject: {{subject}}

View file

@ -90,6 +90,7 @@
(s/def ::error-report-webhook ::us/string)
(s/def ::feedback-destination ::us/string)
(s/def ::feedback-enabled ::us/boolean)
(s/def ::feedback-reply-to ::us/email)
(s/def ::feedback-token ::us/string)
(s/def ::github-client-id ::us/string)
(s/def ::github-client-secret ::us/string)
@ -163,6 +164,7 @@
::error-report-webhook
::feedback-destination
::feedback-enabled
::feedback-reply-to
::feedback-token
::github-client-id
::github-client-secret

View file

@ -27,11 +27,8 @@
(defmethod ig/init-key ::handler
[_ {:keys [pool] :as scfg}]
(let [ftoken (cfg/get :feedback-token ::no-token)
enabled (cfg/get :feedback-enabled)
dest (cfg/get :feedback-destination)
scfg (assoc scfg :destination dest)]
(let [ftoken (cfg/get :feedback-token ::no-token)
enabled (cfg/get :feedback-enabled)]
(fn [{:keys [profile-id] :as request}]
(let [token (get-in request [:headers "x-feedback-token"])
params (d/merge (:params request)
@ -47,7 +44,7 @@
(let [profile (profile/retrieve-profile-data pool profile-id)
params (assoc params :from (:email profile))]
(when-not (:is-muted profile)
(send-feedback scfg profile params)))
(send-feedback pool profile params)))
(= token ftoken)
(send-feedback scfg nil params))
@ -62,12 +59,15 @@
(s/keys :req-un [::from ::subject ::content]))
(defn send-feedback
[{:keys [pool destination]} profile params]
(let [params (us/conform ::feedback params)]
[pool profile params]
(let [params (us/conform ::feedback params)
destination (cfg/get :feedback-destination)
reply-to (cfg/get :feedback-reply-to)]
(emails/send! pool emails/feedback
{:to destination
:profile profile
:from (:from params)
:subject (:subject params)
:content (:content params)})
{:to destination
:profile profile
:reply-to (:from params)
:email (:from params)
:subject (:subject params)
:content (:content params)})
nil))