package server import ( "local/dndex/config" "local/dndex/server/auth" "log" "net/http" "github.com/google/uuid" ) func (rest *REST) users(w http.ResponseWriter, r *http.Request) { switch r.Method { case http.MethodPost: default: rest.respNotFound(w) return } rest.usersContentType(r) switch r.URL.Path { case "/register": rest.usersRegister(w, r) case "/login": rest.usersLogin(w, r) default: rest.respNotFound(w) } } func (rest *REST) usersRegister(w http.ResponseWriter, r *http.Request) { rest.usersContentType(r) err := auth.Register(rest.g, r) if err != nil { rest.respError(w, err) return } rest.respOK(w) } func (rest *REST) usersLogin(w http.ResponseWriter, r *http.Request) { rest.usersContentType(r) salt := uuid.New().String()[:5] var token string var err error switch config.New().Auth { case true: token, err = auth.Generate(rest.g, r, salt) case false: token, err = auth.GeneratePlain(rest.g, r) } if err != nil { rest.respError(w, err) return } log.Println("TODO cookie or body?") rest.respMap(w, "ok", map[string]string{ "token": token, "salt": salt, }) } func (rest *REST) usersContentType(r *http.Request) { if r.Header.Get("Application-Type") == "" { r.Header.Set("Application-Type", "application/x-www-form-urlencoded") } }