diff --git a/internal/booking/service.go b/internal/booking/service.go index bfd375a..a6346f1 100644 --- a/internal/booking/service.go +++ b/internal/booking/service.go @@ -14,6 +14,12 @@ func NewService(db *gorm.DB) *Service { return &Service{db: db} } +func (bs Service) All() []*Booking { + bookings := make([]*Booking, 0) + _ = bs.db.Order("id desc").Find(&bookings) + return bookings +} + type Line struct { From time.Time To time.Time diff --git a/internal/server/handler_booking.go b/internal/server/handler_booking.go index bfb107c..44abc97 100644 --- a/internal/server/handler_booking.go +++ b/internal/server/handler_booking.go @@ -17,10 +17,9 @@ import ( myTime "github.com/rjNemo/rentease/pkg/time" ) -func (s Server) handleListBookingPage() echo.HandlerFunc { +func handleListBookingPage(bs *booking.Service) echo.HandlerFunc { return func(c echo.Context) error { - bookings := make([]*booking.Booking, 0) - _ = s.db.Order("id desc").Find(&bookings) + bookings := bs.All() bvm := u.Map(bookings, func(b *booking.Booking) *views.ListBookingsViewModel { return &views.ListBookingsViewModel{ @@ -34,7 +33,7 @@ func (s Server) handleListBookingPage() echo.HandlerFunc { }) component := views.ListBookings(bvm) - return s.renderTempl(c, http.StatusOK, component) + return renderTempl(c, http.StatusOK, component) } } diff --git a/internal/server/routes.go b/internal/server/routes.go index 21c76ea..1b8a00b 100644 --- a/internal/server/routes.go +++ b/internal/server/routes.go @@ -25,7 +25,7 @@ func (s Server) MountHandlers() { s.Router.Static("/static", "assets") // landing page s.Router.GET("/", handleHomePage()) - s.Router.GET(constants.RouteBooking, s.handleListBookingPage()) + s.Router.GET("/bookings", handleListBookingPage(s.bs)) s.Router.GET(constants.RouteNewBooking, s.handleNewBookingPage()) s.Router.POST(constants.RouteNewBooking, s.handleCreateBooking()) s.Router.GET(fmt.Sprintf("%s/:id", constants.RouteBooking), s.handleBookingPage()) diff --git a/internal/server/server.go b/internal/server/server.go index 9ed5077..0f7586a 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -25,12 +25,11 @@ type Server struct { addr string } -func New(db *gorm.DB) *Server { +func New(bs *booking.Service, ps *pdf.PdfService) *Server { return &Server{ Router: echo.New(), - db: db, - bs: booking.NewService(db), - ps: pdf.NewPdfService(), + bs: bs, + ps: ps, addr: fmt.Sprintf("0.0.0.0:%s", os.Getenv("PORT")), } } diff --git a/main.go b/main.go index e1bd469..df1ebd2 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "gorm.io/gorm" "github.com/rjNemo/rentease/internal/booking" + "github.com/rjNemo/rentease/internal/pdf" "github.com/rjNemo/rentease/internal/server" ) @@ -32,7 +33,7 @@ func main() { log.Fatalf("error migrating the database %s\n", err) } - s := server.New(db) + s := server.New(booking.NewService(db), pdf.NewPdfService()) s.MountHandlers() s.Start() }