store booking request in D

This commit is contained in:
Ruidy 2024-03-10 20:34:29 +01:00
parent fef6ba4954
commit 07f91e8f85
No known key found for this signature in database
GPG key ID: E00F51288CB857CC
4 changed files with 24 additions and 7 deletions

View file

@ -28,17 +28,17 @@ func (b Booking) InvoiceNumber(hc *config.Host) string {
}
type BookingRequest struct {
From time.Time
To time.Time
gorm.Model
CustomerName string
PhoneNumber *string // ensure at least one out of these is not null
From time.Time
To time.Time
PhoneNumber *string
Email *string
BookingId *int
CustomerName string
ItemType string
Message string
Status string
CustomerNumber int
BookingId int
}
type Item struct {

View file

@ -154,3 +154,17 @@ func (bs Service) BuildReport(period string, month, year int) *Report {
}, 0.0),
}
}
func (bs Service) CreateRequest(From time.Time, To time.Time, Name string, PhoneNumber string, Email string, Item string, CustomerNumber int) *BookingRequest {
b := &BookingRequest{
CustomerName: Name,
PhoneNumber: &PhoneNumber,
CustomerNumber: CustomerNumber,
Email: &Email,
From: From,
To: To,
ItemType: Item,
}
_ = bs.db.Create(b)
return b
}

View file

@ -7,6 +7,7 @@ import (
"github.com/labstack/echo/v4"
"github.com/rjNemo/rentease/internal/booking"
"github.com/rjNemo/rentease/internal/view"
myTime "github.com/rjNemo/rentease/pkg/time"
)
@ -17,7 +18,7 @@ func handleHomePage() echo.HandlerFunc {
}
}
func handleRequestBooking() echo.HandlerFunc {
func handleRequestBooking(bs *booking.Service) echo.HandlerFunc {
return func(c echo.Context) error {
itemStr := c.FormValue("item")
fromStr := c.FormValue("from")
@ -53,6 +54,8 @@ func handleRequestBooking() echo.HandlerFunc {
}))
}
bs.CreateRequest(from, to, name, phoneNumber, email, itemStr, 1)
return renderTempl(c, http.StatusSeeOther, view.BaseLayout())
}
}

View file

@ -3,7 +3,7 @@ package server
func (s Server) MountHandlers() {
// public
s.Router.GET("/", handleHomePage())
s.Router.POST("/request-booking", handleRequestBooking())
s.Router.POST("/request-booking", handleRequestBooking(s.bs))
// admin
s.Router.GET("/bookings", handleListBookingPage(s.bs, s.hc))
s.Router.GET("/bookings/new", handleNewBookingPage())