mirror of
https://github.com/penpot/penpot.git
synced 2025-02-03 21:09:00 -05:00
Merge pull request #2071 from penpot/niwinz-improve-api-documentation-output
✨ Improve _doc endpoint output format
This commit is contained in:
commit
0dac3f7845
5 changed files with 36 additions and 14 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -40,9 +40,14 @@
|
||||||
(comp
|
(comp
|
||||||
(d/domap require)
|
(d/domap require)
|
||||||
(map find-ns)
|
(map find-ns)
|
||||||
(mapcat ns-publics)
|
(mapcat (fn [ns]
|
||||||
(map second)
|
(->> (ns-publics ns)
|
||||||
(filter #(::spec (meta %)))))
|
(map second)
|
||||||
|
(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]
|
||||||
|
|
Loading…
Add table
Reference in a new issue