#lang scheme/base
(require "depend.ss" "main.ss")
(require (prefix-in ws: web-server/servlet/web)
(prefix-in ws: web-server/http/redirect))
(define (make-send/*-helper send/*)
(lambda (resp)
(dynamic-wind (lambda ()
(save-session! (current-session)))
(lambda ()
(begin0 (send/* resp)
(refresh-session! (current-session))))
void)))
(define send/back (make-send/*-helper ws:send/back))
(define send/finish (make-send/*-helper ws:send/finish))
(define send/suspend (make-send/*-helper ws:send/suspend))
(define send/suspend/url (make-send/*-helper ws:send/suspend/url))
(define send/forward (make-send/*-helper ws:send/forward))
(define send/suspend/dispatch (make-send/*-helper ws:send/suspend/dispatch))
(define (make-redirect/get send/*)
(lambda ()
(send/* (lambda (k-url) (ws:redirect-to k-url ws:temporarily)))))
(define redirect/get (make-redirect/get send/suspend))
(define redirect/get/forget (make-redirect/get send/forward))
(provide (all-from-out "main.ss"))
(provide send/back
send/finish
send/suspend
send/suspend/url
send/forward
send/suspend/dispatch
redirect/get
redirect/get/forget
)