mirror of
https://github.com/dnote/dnote
synced 2026-03-16 23:45:52 +01:00
Simplify error handling
This commit is contained in:
parent
a5bafe2c39
commit
a18ad1e351
3 changed files with 12 additions and 15 deletions
|
|
@ -201,10 +201,12 @@ func getStatusCode(err error) int {
|
|||
}
|
||||
|
||||
// handleHTMLError writes the error to the log and sets the error message in the data.
|
||||
func handleHTMLError(w http.ResponseWriter, err error, msg string, d *views.Data) {
|
||||
func handleHTMLError(w http.ResponseWriter, r *http.Request, err error, msg string, v *views.View, d *views.Data) {
|
||||
statusCode := getStatusCode(err)
|
||||
w.WriteHeader(statusCode)
|
||||
|
||||
logError(err, msg)
|
||||
d.SetAlert(err)
|
||||
|
||||
v.Render(w, r, d)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
|
||||
"github.com/dnote/dnote/pkg/server/app"
|
||||
"github.com/dnote/dnote/pkg/server/config"
|
||||
"github.com/dnote/dnote/pkg/server/log"
|
||||
"github.com/dnote/dnote/pkg/server/views"
|
||||
)
|
||||
|
||||
|
|
@ -48,26 +47,23 @@ type LoginForm struct {
|
|||
}
|
||||
|
||||
func (u *Users) Login(w http.ResponseWriter, r *http.Request) {
|
||||
vd := views.Data{}
|
||||
|
||||
var form LoginForm
|
||||
if err := parseRequestData(r, &form); err != nil {
|
||||
log.Error(err.Error())
|
||||
w.WriteHeader(500)
|
||||
handleHTMLError(w, r, err, "parsing request data", u.LoginView, &vd)
|
||||
return
|
||||
}
|
||||
|
||||
vd := views.Data{}
|
||||
|
||||
user, err := u.app.Authenticate(form.Email, form.Password)
|
||||
if err != nil {
|
||||
handleHTMLError(w, err, "authenticating user", &vd)
|
||||
u.LoginView.Render(w, r, vd)
|
||||
handleHTMLError(w, r, err, "authenticating user", u.LoginView, &vd)
|
||||
return
|
||||
}
|
||||
|
||||
session, err := u.app.SignIn(user)
|
||||
if err != nil {
|
||||
handleHTMLError(w, err, "signing in a user", &vd)
|
||||
u.LoginView.Render(w, r, vd)
|
||||
handleHTMLError(w, r, err, "signing in a user", u.LoginView, &vd)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -80,14 +76,13 @@ func (u *Users) Logout(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
key, err := GetCredential(r)
|
||||
if err != nil {
|
||||
handleHTMLError(w, err, "signing in a user", &vd)
|
||||
handleHTMLError(w, r, err, "getting credentials", u.LoginView, &vd)
|
||||
u.LoginView.Render(w, r, vd)
|
||||
return
|
||||
}
|
||||
|
||||
if err = u.app.DeleteSession(key); err != nil {
|
||||
handleHTMLError(w, err, "signing in a user", &vd)
|
||||
u.LoginView.Render(w, r, vd)
|
||||
handleHTMLError(w, r, err, "deleting session", u.LoginView, &vd)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ func startCmd() {
|
|||
|
||||
r := routes.New(&app, rc)
|
||||
|
||||
log.Printf("dnote version %s is running on port %s", versionTag, *port)
|
||||
log.Printf("Dnote version %s is running on port %s", versionTag, *port)
|
||||
log.Fatalln(http.ListenAndServe(fmt.Sprintf(":%s", cfg.Port), r))
|
||||
}
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ func versionCmd() {
|
|||
}
|
||||
|
||||
func rootCmd() {
|
||||
fmt.Printf(`dnote server - a simple personal knowledge base
|
||||
fmt.Printf(`Dnote server - a simple personal knowledge base
|
||||
|
||||
Usage:
|
||||
dnote-server [command]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue