diff --git a/backend/src/app/http.clj b/backend/src/app/http.clj index f04a21d90..ebdfc93c1 100644 --- a/backend/src/app/http.clj +++ b/backend/src/app/http.clj @@ -12,6 +12,7 @@ [app.common.spec :as us] [app.http.doc :as doc] [app.http.errors :as errors] + [app.http.debug :as debug] [app.http.middleware :as middleware] [app.metrics :as mtx] [clojure.spec.alpha :as s] @@ -93,15 +94,16 @@ (s/def ::ws fn?) (s/def ::error-report-handler fn?) (s/def ::audit-http-handler fn?) +(s/def ::debug map?) (defmethod ig/pre-init-spec ::router [_] (s/keys :req-un [::rpc ::session ::mtx/metrics ::ws ::oauth ::storage ::assets ::feedback - ::error-report-handler + ::error-report-handler ::debug ::audit-http-handler])) (defmethod ig/init-key ::router - [_ {:keys [ws session rpc oauth metrics assets feedback] :as cfg}] + [_ {:keys [ws session rpc oauth metrics assets feedback debug] :as cfg}] (rr/router [["/metrics" {:get (:handler metrics)}] ["/assets" {:middleware [[middleware/format-response-body] @@ -112,8 +114,15 @@ ["/by-file-media-id/:id" {:get (:file-objects-handler assets)}] ["/by-file-media-id/:id/thumbnail" {:get (:file-thumbnails-handler assets)}]] - ["/dbg" - ["/error-by-id/:id" {:get (:error-report-handler cfg)}]] + ["/dbg" {:middleware [[middleware/params] + [middleware/keyword-params] + [middleware/format-response-body] + [middleware/errors errors/handle] + [middleware/cookies] + [(:middleware session)]]} + ["/error-by-id/:id" {:get (:error-report-handler cfg)}] + ["/file/data/:id" {:get (:retrieve-file-data debug)}] + ["/file/changes/:id" {:get (:retrieve-file-changes debug)}]] ["/webhooks" ["/sns" {:post (:sns-webhook cfg)}]] diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index da25f83df..470c30a81 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -83,6 +83,7 @@ :session (ig/ref :app.http.session/session) :sns-webhook (ig/ref :app.http.awsns/handler) :oauth (ig/ref :app.http.oauth/handler) + :debug (ig/ref :app.http.debug/handlers) :ws (ig/ref :app.http.websocket/handler) :metrics (ig/ref :app.metrics/metrics) :public-uri (cf/get :public-uri) @@ -92,6 +93,9 @@ :error-report-handler (ig/ref :app.loggers.database/handler) :rpc (ig/ref :app.rpc/rpc)} + :app.http.debug/handlers + {:pool (ig/ref :app.db/pool)} + :app.http.websocket/handler {:pool (ig/ref :app.db/pool) :executor (ig/ref :app.worker/executor)