Files
crimson-vault/internal/api/routes.go
T

50 lines
1.9 KiB
Go

package api
import "github.com/labstack/echo/v4/middleware"
func (api *API) ClientRoutes() {
clients := api.instance.Group("/api/clients", api.AuthSessionMiddleware)
clients.GET("/", api.GetAllClientsHandler)
clients.POST("/", api.CreateClientHandler)
clients.GET("/:id/", api.GetClientHandler)
clients.PUT("/:id/", api.UpdateClientHandler)
clients.DELETE("/:id/", api.DeleteClientHandler)
}
func (api *API) UserRoutes() {
users := api.instance.Group("/api/users")
users.GET("/", api.GetAllUsersHandler)
users.POST("/", api.CreateUserHandler)
users.GET("/me/", api.GetUserHandler, api.AuthSessionMiddleware)
users.PUT("/me/", api.UpdateUserHandler, api.AuthSessionMiddleware)
users.PUT("/me/security/", api.UpdateUserSecurityCredentialsHandler, api.AuthSessionMiddleware)
users.PUT("/me/logo/", api.UpdateUserLogoHandler, middleware.BodyLimit("2M"), api.AuthSessionMiddleware)
users.DELETE("/me/", api.DeleteUserHandler, api.AuthSessionMiddleware)
users.DELETE("/me/logo/", api.DeleteUserLogoHandler, api.AuthSessionMiddleware)
}
func (api *API) InvoiceRoutes() {
invoices := api.instance.Group("/api/invoices", api.AuthSessionMiddleware)
invoices.GET("/", api.GetAllInvoicesHandler)
invoices.POST("/", api.CreateInvoiceHandler)
invoices.POST("/:id/items/", api.CreateItemHandler)
invoices.GET("/:id/", api.GetInvoiceHandler)
invoices.GET("/:id/download/", api.DownloadInvoiceHandler)
invoices.GET("/:id/items/", api.GetAllItemsHandler)
invoices.GET("/items/:id/", api.GetItemHandler)
invoices.PUT("/:id/", api.UpdateInvoiceHandler)
invoices.PUT("/items/:id/", api.UpdateItemHandler)
invoices.DELETE("/:id/", api.DeleteInvoiceHandler)
invoices.DELETE("/items/:id/", api.DeleteItemHandler)
}
func (api *API) AuthRoutes() {
auth := api.instance.Group("/api/auth")
auth.POST("/login/", api.LoginHandler)
auth.DELETE("/logout/", api.LogoutHandler, api.AuthSessionMiddleware)
}