package controllers import ( "fmt" "net/http" "strings" "git.kealoha.me/lks/lenslocked/models" "git.kealoha.me/lks/lenslocked/templates" "git.kealoha.me/lks/lenslocked/views" ) type Users struct { Templates struct { New Template } UserService *models.UserService } func (u Users) New(w http.ResponseWriter, r *http.Request) { var data struct { Email string } data.Email = r.FormValue("email") u.Templates.New.Execute(w, data) } func (u Users) Create(w http.ResponseWriter, r *http.Request) { email := r.FormValue("email") password := r.FormValue("password") user, err := u.UserService.Create(email, password) if err != nil { fmt.Println(err) http.Error(w, "Internal Server Error", http.StatusInternalServerError) return } fmt.Fprintf(w, "User created: %+v", user) } func WithStaticTemplate(user_service *models.UserService, templatePath ...string) Users { tpl := views.Must(views.FromFS(templates.FS, templatePath...)) var testWriter strings.Builder err := tpl.ExecuteWriter(&testWriter, nil) if err != nil { panic(err) } u := Users{} u.Templates.New = tpl u.UserService = user_service return u }