mirror of
https://github.com/rjNemo/rentease.git
synced 2026-06-06 02:36:49 +00:00
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
_ "net/http/pprof"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/labstack/echo/v4/middleware"
|
|
)
|
|
|
|
func (s Server) MountHandlers() {
|
|
// public
|
|
s.Router.GET("/debug/pprof/*", echo.WrapHandler(http.DefaultServeMux))
|
|
s.Router.GET("/", handleLoginPage())
|
|
s.Router.POST("/", handleLogin(s.as))
|
|
// api
|
|
api := s.Router.Group("/api")
|
|
api.Use(middleware.KeyAuthWithConfig(middleware.KeyAuthConfig{
|
|
KeyLookup: "header:api-key",
|
|
Validator: func(key string, c echo.Context) (bool, error) {
|
|
return key == s.apiKey, nil
|
|
},
|
|
}))
|
|
api.POST("/sync", handleSync(s.bs))
|
|
// admin
|
|
g := s.Router.Group("")
|
|
g.Use(MakeAuthMiddleware())
|
|
g.GET("/bookings", handleListBookingPage(s.bs, s.hc))
|
|
g.GET("/bookings/new", handleNewBookingPage(s.hc))
|
|
g.POST("/bookings/new", handleCreateBooking(s.bs))
|
|
g.GET("/bookings/:id", handleBookingPage(s.bs, s.hc))
|
|
g.PUT("/bookings/:id", handleUpdateBooking(s.bs, s.hc))
|
|
g.PATCH("/bookings/:id/cancel", handleCancelBooking(s.bs))
|
|
g.POST("/bookings/:id/items", handleCreateItem(s.bs))
|
|
g.POST("/items/:id", handlePayItem(s.bs))
|
|
g.PUT("/items/:id", handleUpdateItem(s.bs))
|
|
g.GET("/items/:id", handleLineItemForm(s.bs))
|
|
g.GET("/bookings/pdf/:id", handleCreateInvoicePdf(s.bs, s.ps, s.hc))
|
|
g.GET("/reports", handleReportsPage())
|
|
g.GET("/reports/do", handleComputeReport(s.bs, s.hc))
|
|
g.GET("/reports/pdf", handleCreateReportPdf(s.bs, s.ps))
|
|
}
|