all repos — homestead @ 35a67d739dd5cd5cf71e5f37762808568272ede5

Code for my website

shared/http/redirect.go (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package http

import (
	"net/http"
)

type URL interface {
	Hostname() string
	Port() string
	RequestURI() string
	String() string
}

func Redirect(w http.ResponseWriter, r *http.Request, url URL, code int) {
	http.Redirect(w, r, url.String(), code)
}

func RedirectHandler(url URL, code int) http.Handler {
	return http.RedirectHandler(url.String(), code)
}

func PermanentRedirect(w http.ResponseWriter, r *http.Request, url URL) {
	Redirect(w, r, url, http.StatusMovedPermanently)
}

func TemporaryRedirect(w http.ResponseWriter, r *http.Request, url URL) {
	Redirect(w, r, url, http.StatusFound)
}