Cleaning up our make reservation page and testing everything
This commit is contained in:
		@ -70,14 +70,33 @@ func (m *Repository) Majors(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
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{})
 | 
			
		||||
	res, ok := m.App.Session.Get(r.Context(), "reservation").(models.Reservation)
 | 
			
		||||
	if !ok {
 | 
			
		||||
		helpers.ServerError(w, errors.New("cannot get reservation from session"))
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data["reservation"] = emptyReservation
 | 
			
		||||
	room, err := m.DB.GetRoomById(res.RoomID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		helpers.ServerError(w, err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	res.Room.RoomName = room.RoomName
 | 
			
		||||
 | 
			
		||||
	sd := res.StartDate.Format("2006-01-02")
 | 
			
		||||
	ed := res.EndDate.Format("2006-01-02")
 | 
			
		||||
	stringMap := make(map[string]string)
 | 
			
		||||
	stringMap["start_date"] = sd
 | 
			
		||||
	stringMap["end_date"] = ed
 | 
			
		||||
 | 
			
		||||
	data := make(map[string]interface{})
 | 
			
		||||
	data["reservation"] = res
 | 
			
		||||
 | 
			
		||||
	render.Template(w, r, "make-reservation.page.tmpl", &models.TemplateData{
 | 
			
		||||
		Form: forms.New(nil),
 | 
			
		||||
		Data: data,
 | 
			
		||||
		Form:      forms.New(nil),
 | 
			
		||||
		Data:      data,
 | 
			
		||||
		StringMap: stringMap,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -126,3 +126,23 @@ func (m *postgresDBRepo) SearchAvailabilityForAllRooms(start, end time.Time) ([]
 | 
			
		||||
 | 
			
		||||
	return rooms, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRoomById gets a room by id
 | 
			
		||||
func (m *postgresDBRepo) GetRoomById(id int) (models.Room, error) {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	var room models.Room
 | 
			
		||||
	stmt := `select
 | 
			
		||||
                id, room_name, created_at, updated_at
 | 
			
		||||
            from
 | 
			
		||||
                rooms
 | 
			
		||||
            where id = $1`
 | 
			
		||||
 | 
			
		||||
	row := m.DB.QueryRowContext(ctx, stmt, id)
 | 
			
		||||
	err := row.Scan(&room.ID, &room.RoomName, &room.CreatedAt, &room.UpdatedAt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return room, err
 | 
			
		||||
	}
 | 
			
		||||
	return room, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -12,4 +12,5 @@ type DatabaseRepo interface {
 | 
			
		||||
	InsertRoomRestriction(res models.RoomRestriction) error
 | 
			
		||||
	SearchAvailabilityByDatesByRoomID(start, end time.Time, roomID int) (bool, error)
 | 
			
		||||
	SearchAvailabilityForAllRooms(start, end time.Time) ([]models.Room, error)
 | 
			
		||||
	GetRoomById(id int) (models.Room, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user