From 099dcf9d518450b9ba913dcd7d8530aa54125309 Mon Sep 17 00:00:00 2001 From: David Florness Date: Mon, 20 Jan 2020 14:11:53 -0700 Subject: [PATCH] Wrap bulletin program code in main module --- secret-sharing/bulletin.rkt | 117 ++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 58 deletions(-) diff --git a/secret-sharing/bulletin.rkt b/secret-sharing/bulletin.rkt index 75dac1f..7dcb34a 100644 --- a/secret-sharing/bulletin.rkt +++ b/secret-sharing/bulletin.rkt @@ -5,69 +5,70 @@ web-server/servlet-env json) -(define voters (list)) -(define _status 'registering) -(define _outputs (make-hasheqv)) +(module+ main + (define voters (list)) + (define _status 'registering) + (define _outputs (make-hasheqv)) -(define (candidates request) - (define candidates '("Emacs" "Vim" "VSCode")) - (if (eq? _status 'voting) - (response/jsexpr candidates) - (response/jsexpr - empty - #:code 403 - #:message #"Voting has not begun"))) + (define (candidates request) + (define candidates '("Emacs" "Vim" "VSCode")) + (if (eq? _status 'voting) + (response/jsexpr candidates) + (response/jsexpr + empty + #:code 403 + #:message #"Voting has not begun"))) -(define (register request) - (define params (bytes->jsexpr (request-post-data/raw request))) - (displayln params) - (set! voters (cons (hasheq 'name (hash-ref params 'name) - 'input (hash-ref params 'input)) - voters)) - (response/jsexpr empty)) + (define (register request) + (define params (bytes->jsexpr (request-post-data/raw request))) + (displayln params) + (set! voters (cons (hasheq 'name (hash-ref params 'name) + 'input (hash-ref params 'input)) + voters)) + (response/jsexpr empty)) -(define (done request) - (set! _status 'voting) - (response/jsexpr (symbol->string _status))) + (define (done request) + (set! _status 'voting) + (response/jsexpr (symbol->string _status))) -(define (peers request) - (if (eq? _status 'voting) - (response/jsexpr (for/list ([v (in-list voters)]) - (hash-ref v 'input))) - (response/jsexpr - empty - #:code 403 - #:message #"Voting has not begun"))) + (define (peers request) + (if (eq? _status 'voting) + (response/jsexpr (for/list ([v (in-list voters)]) + (hash-ref v 'input))) + (response/jsexpr + empty + #:code 403 + #:message #"Voting has not begun"))) -(define (outputs request) - (if (eq? _status 'voting) - (begin - (let ([params (bytes->jsexpr (request-post-data/raw request))]) - (for ([p (in-hash-keys params)]) - (hash-update! _outputs p (λ (l) (cons (hash-ref params p) l)) empty))) - (response/jsexpr empty)) - (response/jsexpr - empty - #:code 403 - #:message #"Voting has not begun") - )) + (define (outputs request) + (if (eq? _status 'voting) + (begin + (let ([params (bytes->jsexpr (request-post-data/raw request))]) + (for ([p (in-hash-keys params)]) + (hash-update! _outputs p (λ (l) (cons (hash-ref params p) l)) empty))) + (response/jsexpr empty)) + (response/jsexpr + empty + #:code 403 + #:message #"Voting has not begun") + )) -(define-values (dispatcher url-generator) - (dispatch-rules - [("candidates") candidates] - [("register") #:method "post" register] - [("done") #:method "put" done] - [("peers") peers] - [("outputs") #:method "post" outputs])) + (define-values (dispatcher url-generator) + (dispatch-rules + [("candidates") candidates] + [("register") #:method "post" register] + [("done") #:method "put" done] + [("peers") peers] + [("outputs") #:method "post" outputs])) -(define/contract (internal-server-error url ex) - (url? any/c . -> . can-be-response?) - (response/full 400 #"Bad Request" (current-seconds) #f empty empty)) + (define/contract (internal-server-error url ex) + (url? any/c . -> . can-be-response?) + (response/full 400 #"Bad Request" (current-seconds) #f empty empty)) -(serve/servlet - dispatcher - #:port 1984 - #:servlet-regexp #rx"" - #:command-line? #t - ;; #:servlet-responder internal-server-error - ) + (serve/servlet + dispatcher + #:port 1984 + #:servlet-regexp #rx"" + #:command-line? #t + ;; #:servlet-responder internal-server-error + )) -- 2.38.4