M secret-sharing/bulletin.rkt => secret-sharing/bulletin.rkt +59 -58
@@ 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
+ ))