Add a 'redirect-to-https-weblet' weblet to change protocol.

This commit is contained in:
Feufochmar 2021-05-05 15:02:12 +02:00
parent 6a360173fd
commit 8f14f2f2a3
1 changed files with 24 additions and 2 deletions

View File

@ -3,13 +3,17 @@
(require
web-server/http
web-server/http/redirect
net/url-string
xml
"http-message.rkt")
"http-message.rkt"
"weblet-parameter.rkt")
(provide
apply-or-return
raw-data-weblet
html-page-weblet)
html-page-weblet
redirect-to-https-weblet)
; Apply or return - If value is a procedure, apply it to the request, or else return value
(define (apply-or-return value param)
@ -49,3 +53,21 @@
(string->bytes/utf-8
(xexpr->string
(apply-or-return body param)))))))
; Weblet to redirect to https, same place, same method
(define redirect-to-https-weblet
(lambda (param)
(define uri (request-uri (weblet-parameter-request param)))
(define new-uri
(make-url
"https"
(url-user uri)
(url-host uri)
(url-port uri)
(url-path-absolute? uri)
(url-path uri)
(url-query uri)
(url-fragment uri)))
(redirect-to
(url->string new-uri)
temporarily/same-method)))