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] ['request]
(list (list
'let '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 (list
'valid-user-or-forbid 'valid-user-or-forbid
(list (list
@ -86,8 +97,7 @@
'do-or-server-fail 'do-or-server-fail
(list (list
(symbol (str "db/" (:name query))) (symbol (str "db/" (:name query)))
'db/*db* 'db/*db* 'params)
'params)
(case (:type query) (case (:type query)
:insert-1 201 ;; created :insert-1 201 ;; created
:delete-1 204 ;; no content :delete-1 204 ;; no content
@ -96,10 +106,13 @@
'params 'params
(set (set
(map (map
#(keyword (:name (:attrs %))) #(keyword (column-name %))
(case (:type query) (case (:type query)
(:insert-1 :update-1) :insert-1
(-> query :entity insertable-properties) (-> query :entity required-properties)
:update-1 (concat
(-> query :entity key-properties)
(-> query :entity required-properties))
(:select-1 :delete-1) (:select-1 :delete-1)
(-> query :entity key-properties) (-> query :entity key-properties)
;; default ;; default

View file

@ -77,7 +77,7 @@
'if 'if
(list (list
'all-keys-present? 'all-keys-present?
'params (key-names e true)) 'params (set (map #(keyword (safe-name % :sql)) (key-names e))))
(list (list
'support/do-or-log-error 'support/do-or-log-error
(list (list
@ -288,13 +288,16 @@
(vector 'request) (vector 'request)
(list 'let (vector (list 'let (vector
'params 'params
(list 'support/massage-params 'request)) (list
'merge
(property-defaults e)
(list 'support/massage-params 'request)))
(list (list
'l/render 'l/render
(list 'support/resolve-template (str (path-part f e a) ".html")) (list 'support/resolve-template (str (path-part f e a) ".html"))
(list 'merge (list 'merge
{:title (capitalise (:name (:attrs f))) {:title (capitalise (:name (:attrs f)))
:params (list 'merge (property-defaults e) 'params)} :params 'params}
(case (:tag f) (case (:tag f)
:form (make-form-get-handler-content f e a n) :form (make-form-get-handler-content f e a n)
:page (make-page-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 (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 ;; Literally the only thing the post handler has to do is to
;; generate the database store operation. Then it can hand off ;; generate the database store operation. Then it can hand off
;; to the get handler. ;; to the get handler.
@ -317,7 +323,7 @@
'params 'params
(set (set
(map (map
#(-> % :attrs :name) #(safe-name (-> % :attrs :name) :sql)
(insertable-properties e)))) (insertable-properties e))))
'result 'result
(list (list