0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-14 19:19:09 -05:00

🎉 Add new approach to update http response from services.

This commit is contained in:
Andrey Antukh 2020-10-05 18:16:19 +02:00 committed by Hirunatan
parent d4cb868503
commit f427c6f8b6
3 changed files with 20 additions and 15 deletions

View file

@ -34,8 +34,7 @@
{::sq/type type}) {::sq/type type})
data (cond-> data data (cond-> data
(:profile-id req) (assoc :profile-id (:profile-id req)))] (:profile-id req) (assoc :profile-id (:profile-id req)))]
(if (or (:profile-id req) (if (or (:profile-id req) (contains? unauthorized-services type))
(contains? unauthorized-services type))
{:status 200 {:status 200
:body (sq/handle (with-meta data {:req req}))} :body (sq/handle (with-meta data {:req req}))}
{:status 403 {:status 403
@ -51,18 +50,14 @@
{::sm/type type}) {::sm/type type})
data (cond-> data data (cond-> data
(:profile-id req) (assoc :profile-id (:profile-id req)))] (:profile-id req) (assoc :profile-id (:profile-id req)))]
(if (or (:profile-id req) (if (or (:profile-id req) (contains? unauthorized-services type))
(contains? unauthorized-services type)) (let [result (sm/handle (with-meta data {:req req}))
(let [body (sm/handle (with-meta data {:req req}))] mdata (meta result)
(if (= type :delete-profile) resp {:status (if (nil? (seq result)) 204 200)
(do :body result}]
(some-> (session/extract-auth-token req) (cond->> resp
(session/delete)) (:transform-response mdata) ((:transform-response mdata) req)))
{:status 204
:cookies (session/cookies "" {:max-age -1})
:body ""})
{:status 200
:body body}))
{:status 403 {:status 403
:body {:type :authentication :body {:type :authentication
:code :unauthorized}}))) :code :unauthorized}})))

View file

@ -7,6 +7,8 @@
;; ;;
;; Copyright (c) 2020 UXBOX Labs SL ;; Copyright (c) 2020 UXBOX Labs SL
;; TODO: move to services.
(ns app.http.session (ns app.http.session
(:require (:require
[app.db :as db] [app.db :as db]

View file

@ -18,6 +18,7 @@
[app.emails :as emails] [app.emails :as emails]
[app.media :as media] [app.media :as media]
[app.media-storage :as mst] [app.media-storage :as mst]
[app.http.session :as session]
[app.services.mutations :as sm] [app.services.mutations :as sm]
[app.services.mutations.media :as media-mutations] [app.services.mutations.media :as media-mutations]
[app.services.mutations.projects :as projects] [app.services.mutations.projects :as projects]
@ -473,7 +474,14 @@
(db/update! conn :profile (db/update! conn :profile
{:deleted-at (dt/now)} {:deleted-at (dt/now)}
{:id profile-id}) {:id profile-id})
nil))
(with-meta {}
{:transform-response
(fn [request response]
(some-> (session/extract-auth-token request)
(session/delete))
(assoc response
:cookies (session/cookies "" {:max-age -1})))})))
(def ^:private sql:teams-ownership-check (def ^:private sql:teams-ownership-check
"with teams as ( "with teams as (