Displaying a response to user after posting form data

This commit is contained in:
Muyao CHEN
2024-07-01 14:19:38 +02:00
parent 6826634a01
commit 3ad57c754f
4 changed files with 71 additions and 8 deletions

View File

@ -69,16 +69,16 @@ func (m *Repository) Majors(w http.ResponseWriter, r *http.Request) {
// MakeReservation is the make reservation page handler
func (m *Repository) MakeReservation(w http.ResponseWriter, r *http.Request) {
// For the first time render emptyReservation so that this object is
// filled with the info when sent back.
var emptyReservation models.Reservation
data := make(map[string]interface{})
// For the first time render emptyReservation so that this object is
// filled with the info when sent back.
var emptyReservation models.Reservation
data := make(map[string]interface{})
data["reservation"] = emptyReservation
data["reservation"] = emptyReservation
render.RenderTemplate(w, r, "make-reservation.page.tmpl", &models.TemplateData{
Form: forms.New(nil),
Data: data,
Data: data,
})
}
@ -100,8 +100,8 @@ func (m *Repository) PostMakeReservation(w http.ResponseWriter, r *http.Request)
form := forms.New(r.PostForm)
form.Required("first_name", "last_name", "email")
form.MinLength("first_name", 2, r)
form.IsEmail("email", r)
form.MinLength("first_name", 2, r)
form.IsEmail("email", r)
if !form.Valid() {
data := make(map[string]interface{})
@ -113,6 +113,24 @@ func (m *Repository) PostMakeReservation(w http.ResponseWriter, r *http.Request)
})
return
}
m.App.Session.Put(r.Context(), "reservation", reservation)
http.Redirect(w, r, "/reservation-summary", http.StatusSeeOther)
}
func (m *Repository) ReservationSummary(w http.ResponseWriter, r *http.Request) {
reservation, ok := m.App.Session.Get(r.Context(), "reservation").(models.Reservation)
if !ok {
log.Println("connot get item from reservation")
}
data := make(map[string]interface{})
data["reservation"] = reservation
render.RenderTemplate(w, r, "reservation-summary.page.tmpl", &models.TemplateData{
Data: data,
})
}
// Availability is the search for availability page handler