Connecting handlers to new database functions
This commit is contained in:
parent
5f649d6d8e
commit
ab02f8e635
@ -2,7 +2,6 @@ package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"go-udemy-web-1/internal/config"
|
||||
"go-udemy-web-1/internal/driver"
|
||||
"go-udemy-web-1/internal/forms"
|
||||
@ -190,7 +189,49 @@ func (m *Repository) Availability(w http.ResponseWriter, r *http.Request) {
|
||||
func (m *Repository) PostAvailability(w http.ResponseWriter, r *http.Request) {
|
||||
start := r.Form.Get("start")
|
||||
end := r.Form.Get("end")
|
||||
fmt.Fprintf(w, "Posted to search availability from %s to %s", start, end)
|
||||
|
||||
layout := "2006-01-02"
|
||||
startDate, err := time.Parse(layout, start)
|
||||
if err != nil {
|
||||
helpers.ServerError(w, err)
|
||||
return
|
||||
}
|
||||
endDate, err := time.Parse(layout, end)
|
||||
if err != nil {
|
||||
helpers.ServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
rooms, err := m.DB.SearchAvailabilityForAllRooms(startDate, endDate)
|
||||
if err != nil {
|
||||
helpers.ServerError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
for _, i := range rooms {
|
||||
m.App.InfoLog.Println("ROOM:", i.ID, i.RoomName)
|
||||
}
|
||||
|
||||
if len(rooms) == 0 {
|
||||
// No availability
|
||||
m.App.InfoLog.Println("No availability")
|
||||
m.App.Session.Put(r.Context(), "error", "No availability")
|
||||
http.Redirect(w, r, "/search-availability", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
data := make(map[string]interface{})
|
||||
data["rooms"] = rooms
|
||||
|
||||
res := models.Reservation{
|
||||
StartDate: startDate,
|
||||
EndDate: endDate,
|
||||
}
|
||||
|
||||
m.App.Session.Put(r.Context(), "reservation", res)
|
||||
|
||||
render.Template(w, r, "choose-room.page.tmpl", &models.TemplateData{
|
||||
Data: data,
|
||||
})
|
||||
}
|
||||
|
||||
type responseJSON struct {
|
||||
|
17
templates/choose-room.page.tmpl
Normal file
17
templates/choose-room.page.tmpl
Normal file
@ -0,0 +1,17 @@
|
||||
{{template "base" .}}
|
||||
{{define "content"}}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1>Choose a Room</h1>
|
||||
|
||||
{{$rooms := index .Data "rooms"}}
|
||||
|
||||
{{range $rooms}}
|
||||
{{.RoomName}}<br>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
Loading…
Reference in New Issue
Block a user