Created
October 12, 2012 14:04
-
-
Save metametaclass/3879328 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (defn field | |
| [name caption type] | |
| {:Name name :Caption caption :FieldType type} | |
| ) | |
| (defn param | |
| ([name caption type refer] | |
| {:Name name :Caption caption :ParamType type :Reference refer}) | |
| ([name caption type refer format default] | |
| {:Name name :Caption caption :ParamType type :Reference refer :Format format :Default default}) | |
| ) | |
| (def reports-map | |
| "Templates" | |
| {:fn (fn [params] (template/list-templates)) | |
| :Metadata {:Desc "Список шаблонов документов" | |
| :Fields [(field "ID" "ID" "integer") | |
| (field "Name" "Название" "string") | |
| (field "Desc" "Описание" "string") | |
| (field "Number" "Номер" "string") | |
| (field "Group" "Группа" "string") | |
| ] | |
| } | |
| } | |
| } | |
| ) | |
| (defn get-report | |
| [name params] | |
| (debugs "get-report:" name) | |
| (if-let [ref (reports-map name)] | |
| ((:fn ref) params) | |
| {:Error (str "Отчет " name " не найден")} | |
| ) | |
| ) | |
| (defn get-report-metadata | |
| [name] | |
| (debugs "get-report-metadata:" name) | |
| (if-let [ref (reports-map name)] | |
| (:Metadata ref) | |
| {:Error (str "Отчет " name " не найден")} | |
| ) | |
| ) | |
| ;;=============================== | |
| (defroutes handler | |
| (GET "/Reports/:name/metadata" [name ] | |
| (debugs "Report metadata:" name ) | |
| (json-response (fbreports/get-report-metadata name))) | |
| (GET "/Reports/:name" {params :params} | |
| (debugs "Report data:" params) | |
| (json-response (fbreports/get-report (:name params) params))) | |
| ;;=============================== | |
| (def app | |
| (-> handler | |
| wrap-db-user | |
| wrap-json-params | |
| ring.middleware.params/wrap-params | |
| wraplog | |
| )) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment