Initial commit

This commit is contained in:
Lizandro Guarnizo
2025-02-06 14:22:29 -05:00
commit 6d8f1bcd6f
452 changed files with 250835 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
)
func AdminRoutes(web fiber.Router) {
admin := web.Group("admin")
admin.Get("/", controllers.Admin)
admin.Get("/users", controllers.GetUsers)
AdminUserRoutes(admin)
RolesRoutes(admin)
PermissionRoutes(admin)
}
func AdminUserRoutes(a fiber.Router) {
services := a.Group("users")
services.Get("/", controllers.GetUsers)
services.Get("/:id", controllers.UserInfo)
services.Put("/:id", controllers.UpdateUser)
services.Get("/:id/settings", controllers.UserSettings)
services.Post("/:id/settings", controllers.StoreUserSettings)
}
func RolesRoutes(r fiber.Router) {
roles := r.Group("roles")
roles.Post("/create", controllers.CreateNewRole)
roles.Post("/remove", controllers.RemoveRole)
roles.Post("/assign", controllers.AssignRoleToUser)
roles.Post("/revoke", controllers.RevokeRoleFromUser)
roles.Post("/change", controllers.ChangeRoleForUser)
}
func PermissionRoutes(r fiber.Router) {
roles := r.Group("permissions")
roles.Post("/add", controllers.AddPermissionOnRole)
roles.Post("/remove", controllers.RemovePermissionFromRole)
roles.Post("/change", controllers.ChangePermissionOnRole)
}
+19
View File
@@ -0,0 +1,19 @@
package routes
import (
"github.com/gofiber/fiber/v2"
apiControllers "github.com/sujit-baniya/fiber-boilerplate/rest/controllers/api"
)
func ApiRoutes(api fiber.Router) {
v1Routes(api)
}
func v1AuthRoutes(api fiber.Router) {
api.Post("/oauth/token", apiControllers.OAuthToken)
}
func v1Routes(api fiber.Router) {
v1 := api.Group("v1")
v1AuthRoutes(v1)
}
+96
View File
@@ -0,0 +1,96 @@
package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
apiControllers "github.com/sujit-baniya/fiber-boilerplate/rest/controllers/api"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
func WebAuthRoutes(App fiber.Router) {
//App.Get("/login",
// middlewares.RedirectToHomePageOnLogin,
// controllers.LoginGet,
//)
App.Post("/do/login",
middlewares.ValidateLoginPost,
controllers.LoginPost,
)
App.Post("/do/logout",
controllers.LogoutPost,
)
App.Get("/register", middlewares.RedirectToHomePageOnLogin, controllers.RegisterGet)
App.Post("/do/register",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidateRegisterPost,
controllers.RegisterPost,
)
App.Get("/reset-password",
middlewares.ValidatePasswordReset,
controllers.PasswordReset,
)
App.Get("/token-vencido",
controllers.TokenVencido,
)
App.Post("/do/reset-password",
controllers.RequestPasswordResetPost,
)
// Generar contraseñas aleatorias /do/generate-password
App.Post("/do/generate-password",
controllers.GeneratePasswordPost,
)
//App.Get("/request-password-reset", middlewares.RedirectToHomePageOnLogin, controllers.RequestPasswordReset)
App.Post("/do/password-reset/:token",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidatePasswordResetPost,
middlewares.ValidateRegisterPost,
controllers.PasswordResetPost)
App.Get("/resend/confirm", controllers.ResendConfirmEmail)
App.Get("/do/verify-email",
middlewares.ValidateConfirmToken,
controllers.VerifyRegisteredEmail,
)
}
func AuthRoutes(App fiber.Router) {
App.Post("/do/login",
middlewares.ValidateApiLoginPost,
apiControllers.ApiLoginPost,
)
App.Post("/me", controllers.Me)
App.Post("/do/logout", controllers.LogoutPost)
App.Get("/register", middlewares.RedirectToHomePageOnLogin, controllers.RegisterGet)
//App.Post("/do/register",
// middlewares.ValidateApiRegisterPost,
// apiControllers.ApiRegisterPost,
//)
App.Get("/reset-password",
middlewares.ValidatePasswordReset,
controllers.PasswordReset,
)
App.Post("/do/reset-password",
controllers.RequestPasswordResetPost,
)
// Generar contraseñas aleatorias /do/generate-password
App.Post("/do/generate-password",
controllers.GeneratePasswordPost,
)
App.Get("/request-password-reset", middlewares.RedirectToHomePageOnLogin, controllers.RequestPasswordReset)
App.Post("/do/password-reset/:token",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidatePasswordResetPost,
middlewares.ValidateRegisterPost,
controllers.PasswordResetPost)
App.Get("/resend/confirm", controllers.ResendConfirmEmail)
App.Get("/do/verify-email",
middlewares.ValidateConfirmToken,
controllers.VerifyRegisteredEmail,
)
}
+7
View File
@@ -0,0 +1,7 @@
package routes
import "github.com/gofiber/fiber/v2"
func LoadCharts(app fiber.Router) {
}
+25
View File
@@ -0,0 +1,25 @@
package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/app"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
func LandingRoutes(web fiber.Router) {
//web.Get("/", controllers.Landing)
web.Get("/ping", Pong)
web.Get("/all-routes", AllRoutes)
web.Get("/do/verify-email", middlewares.ValidateConfirmToken, controllers.VerifyRegisteredEmail)
}
func Pong(c *fiber.Ctx) error {
return c.SendString("Pong")
}
func AllRoutes(c *fiber.Ctx) error {
return c.JSON(app.Http.Server.Stack())
}
+34
View File
@@ -0,0 +1,34 @@
package routes
import (
"github.com/gofiber/fiber/v2"
)
func LoadRoutes(app *fiber.App) {
// Grupo de rutas de la API con autenticación
//api := app.Group("/api").Use(middlewares.AuthApi())
//ApiRoutes(api)
// Grupo de rutas web (sin autenticación)
web := app.Group("")
// Rutas del backend (web)
WebRoutes(web)
vue := app.Group("")
// Sirve archivos estáticos de Vue.js desde la carpeta 'dist'
vue.Static("/", "./dist") // Sirve archivos estáticos de Vue.js
// Ruta para acceder a los archivos subidos
vue.Get("/uploads/:filename", func(c *fiber.Ctx) error {
filename := c.Params("filename")
// Devuelve el archivo solicitado desde 'uploads'
return c.SendFile("./uploads/" + filename)
})
// Ruta wildcard para manejar las rutas del frontend (SPA)
vue.Get("/*", func(c *fiber.Ctx) error {
return c.SendFile("./dist/index.html")
})
}
+56
View File
@@ -0,0 +1,56 @@
package routes
import (
"net/http"
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
func UserRoutes(app fiber.Router) {
protected := app.Group("/app").
Use(
middlewares.AuthWeb(), // Middleware de autenticación
middlewares.LoadUserMiddleware, // Middleware para cargar el usuario
)
// Rutas de la aplicación
// web me redireccione a /
protected.Get("/web", func(c *fiber.Ctx) error { return c.Redirect("/", http.StatusSeeOther) })
app.Get("/web", func(c *fiber.Ctx) error { return c.Redirect("/", http.StatusSeeOther) })
protected.Get("/", controllers.App)
protected.Get("/me", controllers.Me)
// Rutas de módulos
protected.Get("/modules", middlewares.MenuMiddleware, controllers.Modules) // Renderizar la vista
protected.Get("/loadmodules", controllers.GetModules) // Obtener todos los módulos
protected.Post("/modules", controllers.CreateModule) // Crear un nuevo módulo
protected.Put("/modules/:id", controllers.UpdateModule) // Actualizar un módulo existente
protected.Delete("/modules/:id", controllers.DeleteModule) // Eliminar un módulo
// Rutas de roles
protected.Get("/roles", middlewares.MenuMiddleware, controllers.Roles) // Renderizar la vista
protected.Get("/loadroles", controllers.GetRoles) // Obtener todos
protected.Post("/roles", controllers.CreateRole) // Crear
protected.Put("/roles/:id", controllers.UpdateRole) // Actualizar
protected.Delete("/roles/:id", controllers.DeleteRole) // Eliminar
// Rutas de usuarios
protected.Get("/users", middlewares.MenuMiddleware, controllers.Users) // Renderizar la vista
protected.Get("/loadusers", controllers.GetUsers) // Obtener
protected.Post("/users", controllers.CreateUser) // Crear
protected.Put("/users/:id", controllers.UpdateUser) // Actualizar
protected.Put("/password/:id", controllers.UpdatePassword) // Actualizar
protected.Delete("/users/:id", controllers.DeleteUser) // Eliminar
protected.Get("/user/:id", controllers.GetUser) // Buscar un usuario
// Rutas de módulos
protected.Get("/submodules", middlewares.MenuMiddleware, controllers.Submodules) // Renderizar la vista
protected.Get("/loadsubmodules", controllers.GetSubmodules) // Obtener todos los módulos
protected.Post("/submodules", controllers.CreateSubmodule) // Crear un nuevo módulo
protected.Put("/submodules/:id", controllers.UpdateSubmodule) // Actualizar un módulo existente
protected.Delete("/submodules/:id", controllers.DeleteSubmodule) // Eliminar un módulo
// Eliminar un colaborador por ID
}
+17
View File
@@ -0,0 +1,17 @@
package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
// Configuración de rutas web
func WebRoutes(web fiber.Router) {
// Aplicar el middleware para desactivar el caché
web.Use(middlewares.LoadCacheHeaders)
// Rutas específicas del backend
LandingRoutes(web)
WebAuthRoutes(web)
UserRoutes(web)
}