Add Sign in page
This commit is contained in:
@@ -11,7 +11,7 @@ type Template interface {
|
||||
Execute(w http.ResponseWriter, data interface{})
|
||||
}
|
||||
|
||||
func StaticTemplate(templatePath ...string) http.HandlerFunc {
|
||||
func StaticController(templatePath ...string) http.HandlerFunc {
|
||||
tpl := views.Must(views.FromFS(templates.FS, templatePath...))
|
||||
|
||||
var testWriter strings.Builder
|
||||
|
||||
@@ -12,20 +12,21 @@ import (
|
||||
|
||||
type Users struct {
|
||||
Templates struct {
|
||||
New Template
|
||||
Signup Template
|
||||
Signin Template
|
||||
}
|
||||
UserService *models.UserService
|
||||
}
|
||||
|
||||
func (u Users) New(w http.ResponseWriter, r *http.Request) {
|
||||
func (u Users) GetSignup(w http.ResponseWriter, r *http.Request) {
|
||||
var data struct {
|
||||
Email string
|
||||
}
|
||||
data.Email = r.FormValue("email")
|
||||
u.Templates.New.Execute(w, data)
|
||||
u.Templates.Signup.Execute(w, data)
|
||||
}
|
||||
|
||||
func (u Users) Create(w http.ResponseWriter, r *http.Request) {
|
||||
func (u Users) PostSignup(w http.ResponseWriter, r *http.Request) {
|
||||
email := r.FormValue("email")
|
||||
password := r.FormValue("password")
|
||||
user, err := u.UserService.Create(email, password)
|
||||
@@ -37,17 +38,35 @@ func (u Users) Create(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintf(w, "User created: %+v", user)
|
||||
}
|
||||
|
||||
func WithStaticTemplate(user_service *models.UserService, templatePath ...string) Users {
|
||||
tpl := views.Must(views.FromFS(templates.FS, templatePath...))
|
||||
func (u Users) GetSignin(w http.ResponseWriter, r *http.Request) {
|
||||
var data struct {
|
||||
Email string
|
||||
}
|
||||
data.Email = r.FormValue("email")
|
||||
u.Templates.Signin.Execute(w, data)
|
||||
}
|
||||
|
||||
func WithTemplates(user_service *models.UserService, signup Template, signin Template) Users {
|
||||
u := Users{}
|
||||
u.Templates.Signup = signup
|
||||
u.Templates.Signin = signin
|
||||
u.UserService = user_service
|
||||
return u
|
||||
}
|
||||
|
||||
func Default(user_service *models.UserService, templatePath ...string) Users {
|
||||
signup_tpl := views.Must(views.FromFS(templates.FS, "signup.gohtml", "tailwind.gohtml"))
|
||||
signin_tpl := views.Must(views.FromFS(templates.FS, "signin.gohtml", "tailwind.gohtml"))
|
||||
|
||||
var testWriter strings.Builder
|
||||
err := tpl.ExecuteWriter(&testWriter, nil)
|
||||
err := signup_tpl.ExecuteWriter(&testWriter, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = signin_tpl.ExecuteWriter(&testWriter, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
u := Users{}
|
||||
u.Templates.New = tpl
|
||||
u.UserService = user_service
|
||||
return u
|
||||
return WithTemplates(user_service, signup_tpl, signin_tpl)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user