Setting up database functions: inserting a reservation

This commit is contained in:
2024-07-08 23:04:17 +02:00
parent f5f89c2c03
commit 2ae5d9a2c2
4 changed files with 72 additions and 0 deletions

View File

@ -12,6 +12,8 @@ import (
"go-udemy-web-1/internal/repository"
"go-udemy-web-1/internal/repository/dbrepo"
"net/http"
"strconv"
"time"
)
// Repo the repository used by the handlers
@ -85,11 +87,33 @@ func (m *Repository) PostMakeReservation(w http.ResponseWriter, r *http.Request)
return
}
sd := r.Form.Get("start_date")
ed := r.Form.Get("end_date")
// 2024-07-08 -- 01/02 03:04:05PM '06 -0700
layout := "2006-01-02"
startDate, err := time.Parse(layout, sd)
if err != nil {
helpers.ServerError(w, err)
}
endDate, err := time.Parse(layout, ed)
if err != nil {
helpers.ServerError(w, err)
}
roomId, err := strconv.Atoi(r.Form.Get("room_id"))
if err != nil {
helpers.ServerError(w, err)
}
reservation := models.Reservation{
FirstName: r.Form.Get("first_name"),
LastName: r.Form.Get("last_name"),
Email: r.Form.Get("email"),
Phone: r.Form.Get("phone"),
StartDate: startDate,
EndDate: endDate,
RoomID: roomId,
}
form := forms.New(r.PostForm)
@ -109,6 +133,11 @@ func (m *Repository) PostMakeReservation(w http.ResponseWriter, r *http.Request)
return
}
err = m.DB.InsertReservation(reservation)
if err != nil {
helpers.ServerError(w, err)
}
m.App.Session.Put(r.Context(), "reservation", reservation)
http.Redirect(w, r, "/reservation-summary", http.StatusSeeOther)