0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-04 05:18:56 -05:00

Merge pull request #2071 from penpot/niwinz-improve-api-documentation-output

 Improve _doc endpoint output format
This commit is contained in:
Alejandro 2022-07-06 11:17:22 +02:00 committed by GitHub
commit 0dac3f7845
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 14 deletions

View file

@ -85,6 +85,16 @@ header {
.rpc-row-info > .name { .rpc-row-info > .name {
width: 280px; width: 280px;
/* font-weight: bold; */ /* font-weight: bold; */
border-right: 1px dotted #777;
padding-right: 10px;
}
.rpc-row-info > .module {
width: 120px;
font-weight: bold;
border-right: 1px dotted #777;
text-align: right;
padding-right: 10px;
} }
.rpc-row-info > .tags > .tag > span:first-child { .rpc-row-info > .tags > .tag > span:first-child {

View file

@ -26,6 +26,7 @@
<li class="rpc-item"> <li class="rpc-item">
<div class="rpc-row-info"> <div class="rpc-row-info">
{# <div class="type">{{item.type}}</div> #} {# <div class="type">{{item.type}}</div> #}
<div class="module">{{item.module}}:</div>
<div class="name">{{item.name}}</div> <div class="name">{{item.name}}</div>
<div class="tags"> <div class="tags">
<span class="tag"> <span class="tag">
@ -53,6 +54,8 @@
<li class="rpc-item"> <li class="rpc-item">
<div class="rpc-row-info"> <div class="rpc-row-info">
{# <div class="type">{{item.type}}</div> #} {# <div class="type">{{item.type}}</div> #}
<div class="module">{{item.module}}:</div>
<div class="name">{{item.name}}</div> <div class="name">{{item.name}}</div>
<div class="tags"> <div class="tags">
<span class="tag"> <span class="tag">
@ -80,6 +83,7 @@
<li class="rpc-item"> <li class="rpc-item">
<div class="rpc-row-info"> <div class="rpc-row-info">
{# <div class="type">{{item.type}}</div> #} {# <div class="type">{{item.type}}</div> #}
<div class="module">{{item.module}}:</div>
<div class="name">{{item.name}}</div> <div class="name">{{item.name}}</div>
<div class="tags"> <div class="tags">
<span class="tag"> <span class="tag">

View file

@ -14,6 +14,7 @@
[app.util.template :as tmpl] [app.util.template :as tmpl]
[clojure.java.io :as io] [clojure.java.io :as io]
[clojure.spec.alpha :as s] [clojure.spec.alpha :as s]
[cuerdas.core :as str]
[integrant.core :as ig] [integrant.core :as ig]
[pretty-spec.core :as ps] [pretty-spec.core :as ps]
[yetti.response :as yrs])) [yetti.response :as yrs]))
@ -30,25 +31,26 @@
[methods] [methods]
(letfn [(gen-doc [type [name f]] (letfn [(gen-doc [type [name f]]
(let [mdata (meta f)] (let [mdata (meta f)]
;; (prn name mdata)
{:type (d/name type) {:type (d/name type)
:name (d/name name) :name (d/name name)
:module (-> (:ns mdata) (str/split ".") last)
:auth (:auth mdata true) :auth (:auth mdata true)
:docs (::sv/docs mdata) :docs (::sv/docs mdata)
:spec (get-spec-str (::sv/spec mdata))}))] :spec (get-spec-str (::sv/spec mdata))}))]
{:command-methods {:command-methods
(into [] (->> (:commands methods)
(map (partial gen-doc :command)) (map (partial gen-doc :command))
(->> methods :commands (sort-by first))) (sort-by (juxt :module :name)))
:query-methods :query-methods
(into [] (->> (:queries methods)
(map (partial gen-doc :query)) (map (partial gen-doc :query))
(->> methods :queries (sort-by first))) (sort-by (juxt :module :name)))
:mutation-methods :mutation-methods
(into [] (->> (:mutations methods)
(map (partial gen-doc :mutation)) (map (partial gen-doc :query))
(->> methods :mutations (sort-by first)))})) (sort-by (juxt :module :name)))}))
(defn- handler (defn- handler
[methods] [methods]

View file

@ -204,8 +204,9 @@
(defn- process-method (defn- process-method
[cfg vfn] [cfg vfn]
(let [mdata (meta vfn)] (let [mdata (meta vfn)]
;; (prn mdata)
[(keyword (::sv/name mdata)) [(keyword (::sv/name mdata))
(wrap cfg (deref vfn) mdata)])) (wrap cfg vfn mdata)]))
(defn- resolve-query-methods (defn- resolve-query-methods
[cfg] [cfg]

View file

@ -40,9 +40,14 @@
(comp (comp
(d/domap require) (d/domap require)
(map find-ns) (map find-ns)
(mapcat ns-publics) (mapcat (fn [ns]
(->> (ns-publics ns)
(map second) (map second)
(filter #(::spec (meta %))))) (filter #(::spec (meta %)))
(map (fn [fvar]
(with-meta (deref fvar)
(-> (meta fvar)
(assoc :ns (-> ns ns-name str)))))))))))
(defn scan-ns (defn scan-ns
[& nsyms] [& nsyms]