~edwargix/tallyard

8605d75165c865f688f9a6fb68c48de1ef8a23ee — David Florness 5 years ago
I can list candidates from the server
1 files changed, 34 insertions(+), 0 deletions(-)

A server.rkt
A  => server.rkt +34 -0
@@ 1,34 @@
#lang racket
(require web-server/dispatch
         web-server/servlet
         web-server/servlet-env
         web-server/http)
(require json)

(define cands (list "ohea" "rtsn" "qfuy"))

; how this is not a provided function is beyond me
(define/contract (response/json jsexpr)
  (-> jsexpr? response?)
  (response/full
   200 #f (current-seconds) #"application/json"
   empty (list (jsexpr->bytes jsexpr))))

(define (candidates req)
  (response/json cands))

(define (vote req)
  (response/xexpr
   '(html (body (p "you're going to vote")))))

(define-values (dispatcher url-generator)
  (dispatch-rules
   [("candidates") candidates]
   [("vote") vote]
   [else candidates]))

(serve/servlet dispatcher
               #:port 5598
               #:command-line? #f
               #:servlet-path ""
               #:servlet-regexp #rx"")