refactoring of cmaps, widgets, etc.
This commit is contained in:
+62
-10
@@ -15,8 +15,9 @@
|
||||
web-server/http
|
||||
web-server/servlet-env
|
||||
"private/auth.rkt"
|
||||
"private/cmap-appearance.rkt"
|
||||
"private/cmap-settings.rkt"
|
||||
"private/cmap-storage.rkt"
|
||||
"private/cmap-styles.rkt"
|
||||
"private/config.rkt"
|
||||
(only-in "private/database.rkt" call-with-wiki-database)
|
||||
"private/http-util.rkt"
|
||||
@@ -837,20 +838,63 @@ CSS
|
||||
(json-response
|
||||
(hash 'conceptMaps (list-archived-concept-maps config))))))
|
||||
|
||||
(define (cmap-styles-handler config req)
|
||||
(define (cmap-appearance-handler config req)
|
||||
(if (string-ci=? (bytes->string/latin-1 (request-method req)) "GET")
|
||||
(require-role
|
||||
config req 'reader
|
||||
(λ (_session)
|
||||
(json-response (hash 'styles (or (read-cmap-styles config) 'null)))))
|
||||
(json-response (read-cmap-appearance config))))
|
||||
(require-write-role
|
||||
config req 'editor
|
||||
(λ (_session)
|
||||
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
|
||||
(define body (request-json req))
|
||||
(json-response
|
||||
(hash 'styles
|
||||
(save-cmap-styles! config (hash-ref body 'styles '())))))))))
|
||||
(json-response (save-cmap-appearance! config body)))))))
|
||||
|
||||
(define (cmap-settings-handler config req)
|
||||
(require-role
|
||||
config req 'reader
|
||||
(λ (session)
|
||||
(json-response
|
||||
(read-cmap-settings config (wiki-user-id (wiki-session-user session)))))))
|
||||
|
||||
(define (cmap-start-setting-handler config req)
|
||||
(require-write-role
|
||||
config req 'editor
|
||||
(λ (_session)
|
||||
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
|
||||
(define body (request-json req))
|
||||
(json-response
|
||||
(hash 'startCmapSlug
|
||||
(save-start-cmap! config (hash-ref body 'startCmapSlug ""))))))))
|
||||
|
||||
(define (cmap-page-guides-setting-handler config req)
|
||||
(require-write-role
|
||||
config req 'reader
|
||||
(λ (session)
|
||||
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
|
||||
(define body (request-json req))
|
||||
(json-response
|
||||
(hash 'pageGuidesVisible
|
||||
(save-cmap-page-guides!
|
||||
config
|
||||
(wiki-user-id (wiki-session-user session))
|
||||
(hash-ref body 'pageGuidesVisible 'missing))))))))
|
||||
|
||||
(define (cmap-zoom-setting-handler config req)
|
||||
(require-write-role
|
||||
config req 'reader
|
||||
(λ (session)
|
||||
(with-handlers ([exn:fail? (λ (e) (json-error 400 (exn-message e)))])
|
||||
(define body (request-json req))
|
||||
(json-response
|
||||
(hash 'zoomPercent
|
||||
(save-cmap-zoom!
|
||||
config
|
||||
(wiki-user-id (wiki-session-user session))
|
||||
(hash-ref body 'cmapSlug "")
|
||||
(hash-ref body 'contextKey "")
|
||||
(hash-ref body 'zoomPercent #f))))))))
|
||||
|
||||
(define (admin-restore-concept-map-handler config req slug)
|
||||
(require-write-role
|
||||
@@ -1104,10 +1148,18 @@ CSS
|
||||
(λ (req) (concept-map-list-handler config req))]
|
||||
[("api" "cmaps") #:method "post"
|
||||
(λ (req) (concept-map-create-handler config req))]
|
||||
[("api" "cmap-styles") #:method "get"
|
||||
(λ (req) (cmap-styles-handler config req))]
|
||||
[("api" "cmap-styles") #:method "put"
|
||||
(λ (req) (cmap-styles-handler config req))]
|
||||
[("api" "cmap-appearance") #:method "get"
|
||||
(λ (req) (cmap-appearance-handler config req))]
|
||||
[("api" "cmap-appearance") #:method "put"
|
||||
(λ (req) (cmap-appearance-handler config req))]
|
||||
[("api" "cmap-settings") #:method "get"
|
||||
(λ (req) (cmap-settings-handler config req))]
|
||||
[("api" "cmap-settings" "start") #:method "put"
|
||||
(λ (req) (cmap-start-setting-handler config req))]
|
||||
[("api" "cmap-settings" "page-guides") #:method "put"
|
||||
(λ (req) (cmap-page-guides-setting-handler config req))]
|
||||
[("api" "cmap-settings" "zoom") #:method "put"
|
||||
(λ (req) (cmap-zoom-setting-handler config req))]
|
||||
[("api" "cmaps" "concept-usage") #:method "get"
|
||||
(λ (req) (concept-usage-handler config req))]
|
||||
[("api" "people") #:method "get"
|
||||
|
||||
Reference in New Issue
Block a user