1
0
mirror of https://github.com/bingohuang/docker-labs.git synced 2025-07-14 01:57:32 +08:00
docker-labs/handlers/new_session.go

32 lines
683 B
Go

package handlers
import (
"fmt"
"log"
"net/http"
"github.com/franela/play-with-docker/services"
)
func NewSession(rw http.ResponseWriter, req *http.Request) {
if !services.IsHuman(req) {
// User it not a human
rw.WriteHeader(http.StatusConflict)
rw.Write([]byte("Only humans are allowed!"))
return
}
s, err := services.NewSession()
if err != nil {
log.Println(err)
//TODO: Return some error code
} else {
// If request is not a form, return sessionId in the body
if req.Header.Get("Content-Type") != "application/x-www-form-urlencoded" {
rw.Write([]byte(s.Id))
return
}
http.Redirect(rw, req, fmt.Sprintf("/p/%s", s.Id), http.StatusFound)
}
}