Merge branch 'develop' of ssh://goldsmith.journeyman.cc:/srv/git/adl into develop

This commit is contained in:
Simon Brooke 2018-09-20 09:44:05 +01:00
commit 1dac3e9274
2 changed files with 29 additions and 10 deletions

View file

@ -77,7 +77,18 @@
['request]
(list
'let
['params '(massage-params request)]
['params (list
'merge
(apply hash-map
(interleave
(map
#(keyword (column-name %))
(descendants-with-tag
(:entity query)
:property
#(not (= (-> % :attrs :required) "true"))))
(repeat nil)))
'(massage-params request))]
(list
'valid-user-or-forbid
(list
@ -86,8 +97,7 @@
'do-or-server-fail
(list
(symbol (str "db/" (:name query)))
'db/*db*
'params)
'db/*db* 'params)
(case (:type query)
:insert-1 201 ;; created
:delete-1 204 ;; no content
@ -96,10 +106,13 @@
'params
(set
(map
#(keyword (:name (:attrs %)))
#(keyword (column-name %))
(case (:type query)
(:insert-1 :update-1)
(-> query :entity insertable-properties)
:insert-1
(-> query :entity required-properties)
:update-1 (concat
(-> query :entity key-properties)
(-> query :entity required-properties))
(:select-1 :delete-1)
(-> query :entity key-properties)
;; default

View file

@ -77,7 +77,7 @@
'if
(list
'all-keys-present?
'params (key-names e true))
'params (set (map #(keyword (safe-name % :sql)) (key-names e))))
(list
'support/do-or-log-error
(list
@ -288,13 +288,16 @@
(vector 'request)
(list 'let (vector
'params
(list 'support/massage-params 'request))
(list
'merge
(property-defaults e)
(list 'support/massage-params 'request)))
(list
'l/render
(list 'support/resolve-template (str (path-part f e a) ".html"))
(list 'merge
{:title (capitalise (:name (:attrs f)))
:params (list 'merge (property-defaults e) 'params)}
:params 'params}
(case (:tag f)
:form (make-form-get-handler-content f e a n)
:page (make-page-get-handler-content f e a n)
@ -302,6 +305,9 @@
(defn make-form-post-handler-content
"Generate the body of the post handler for the form `f` of
entity `e` in application `a`. The argument `n` is bound to the name
of the function, but is not currently used."
;; Literally the only thing the post handler has to do is to
;; generate the database store operation. Then it can hand off
;; to the get handler.
@ -317,7 +323,7 @@
'params
(set
(map
#(-> % :attrs :name)
#(safe-name (-> % :attrs :name) :sql)
(insertable-properties e))))
'result
(list