438 lines
29 KiB
Go
Executable File
438 lines
29 KiB
Go
Executable File
package routes
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"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 UserRoutes(app fiber.Router) {
|
|
protected := app.Group("/app").
|
|
Use(
|
|
middlewares.AuthWeb(), // Middleware de autenticación
|
|
middlewares.LoadUserMiddleware, // Middleware para cargar el usuario
|
|
)
|
|
|
|
// Perfil del usuario autenticado
|
|
protected.Get("/profile", middlewares.MenuMiddleware, controllers.Profile)
|
|
|
|
// 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("/dashboard", middlewares.MenuMiddleware, controllers.Dashboard)
|
|
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 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
|
|
|
|
// 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 conexiones ssh
|
|
protected.Get("/conexion_ssh", middlewares.MenuMiddleware, controllers.ConxSsh) // Renderizar la vista
|
|
protected.Get("/loadconexionssh", controllers.GetConxSsh) // Obtener
|
|
protected.Post("/conexionssh", controllers.CreateConxSsh) // Crear
|
|
protected.Put("/conexionssh/:id", controllers.UpdateConxSsh) // Actualizar
|
|
protected.Delete("/conexionssh/:id", controllers.DeleteConxSsh) // Eliminar
|
|
|
|
// Rutas de conexiones db
|
|
protected.Get("/conexion_db", middlewares.MenuMiddleware, controllers.ConxDb) // Renderizar la vista
|
|
protected.Get("/loadconexiondb", controllers.GetConxDb) // Obtener
|
|
protected.Post("/conexiondb", controllers.CreateConxDb) // Crear
|
|
protected.Put("/conexiondb/:id", controllers.UpdateConxDb) // Actualizar
|
|
protected.Delete("/conexiondb/:id", controllers.DeleteConxDb) // Eliminar
|
|
|
|
// Rutas de servidor
|
|
protected.Get("/servidor", middlewares.MenuMiddleware, controllers.Servidor)
|
|
protected.Get("/servidor-dashboard", middlewares.MenuMiddleware, controllers.ServidorDashboard)
|
|
protected.Get("/loadservidorselect", controllers.GetServidor)
|
|
protected.Get("/loadservidor", controllers.GetServidor)
|
|
protected.Post("/servidor", controllers.CreateServidor)
|
|
protected.Put("/servidor/:id", controllers.UpdateServidor)
|
|
protected.Delete("/servidor/:id", controllers.DeleteServidor)
|
|
protected.Get("/servidor-dashboard/:id", controllers.GetServidorDashboard)
|
|
protected.Get("/conx-ping/:id", controllers.PingConexion)
|
|
protected.Post("/servidor/:id/agent-token", controllers.GenerateAgentToken)
|
|
protected.Post("/servidor/:id/sync-hostinger", controllers.SyncServidorFromHostinger)
|
|
|
|
// Rutas de proveedores de servidor
|
|
protected.Get("/prov_servidor", middlewares.MenuMiddleware, controllers.ProvServidor)
|
|
protected.Get("/loadprovservidor", controllers.GetProvServidor)
|
|
protected.Post("/provservidor", controllers.CreateProvServidor)
|
|
protected.Put("/provservidor/:id", controllers.UpdateProvServidor)
|
|
protected.Put("/provservidor/:id/integraciones", controllers.SetProvServidorIntegraciones)
|
|
protected.Delete("/provservidor/:id", controllers.DeleteProvServidor)
|
|
|
|
// Rutas de tipos de servidor
|
|
protected.Get("/tipo_servidor", middlewares.MenuMiddleware, controllers.TipoServidor)
|
|
protected.Get("/loadtiposervidor", controllers.GetTipoServidor)
|
|
protected.Post("/tiposervidor", controllers.CreateTipoServidor)
|
|
protected.Put("/tiposervidor/:id", controllers.UpdateTipoServidor)
|
|
protected.Delete("/tiposervidor/:id", controllers.DeleteTipoServidor)
|
|
|
|
// Rutas de tipo db
|
|
protected.Get("/tipo_db", middlewares.MenuMiddleware, controllers.TipoDb)
|
|
protected.Get("/loadtipodb", controllers.GetTipoDb)
|
|
protected.Post("/tipodb", controllers.CreateTipoDb)
|
|
protected.Put("/tipodb/:id", controllers.UpdateTipoDb)
|
|
protected.Delete("/tipodb/:id", controllers.DeleteTipoDb)
|
|
|
|
// ─── Módulo de Renovaciones / Contratos ──────────────────────────
|
|
RenovacionesRoutes(protected)
|
|
|
|
// ─── Seed manual (admin) ────────────────────────────────────────────
|
|
protected.Get("/run-seed", controllers.RunSeed)
|
|
// ─── Query Runner (editor SQL) ────────────────────────────────────────────
|
|
protected.Get("/query-runner", middlewares.MenuMiddleware, controllers.QueryRunnerPage)
|
|
protected.Get("/query-runner/connections", controllers.GetConxDbList)
|
|
protected.Get("/query-runner/databases", controllers.GetDatabases)
|
|
protected.Get("/query-runner/tables", controllers.GetTables)
|
|
protected.Get("/query-runner/test", controllers.TestConnection)
|
|
protected.Post("/query-runner/run", controllers.RunQuery)
|
|
protected.Get("/query-runner/history", controllers.GetHistory)
|
|
protected.Delete("/query-runner/history", controllers.ClearHistory)
|
|
protected.Post("/query-runner/export/csv", controllers.ExportCSV)
|
|
protected.Post("/query-runner/export/json", controllers.ExportJSON)
|
|
// ─── Hostinger API ────────────────────────────────────────────────
|
|
protected.Get("/hostinger", middlewares.MenuMiddleware, controllers.HostingerConfigPage)
|
|
protected.Post("/hostinger/config", controllers.SaveHostingerConfig)
|
|
protected.Get("/hostinger/vps", controllers.GetHostingerVPS)
|
|
protected.Get("/hostinger/domains", controllers.GetHostingerDomains)
|
|
protected.Get("/hostinger/dns/:domain", controllers.GetHostingerDNS)
|
|
protected.Put("/hostinger/dns/:domain", controllers.UpdateHostingerDNS)
|
|
protected.Post("/hostinger/dns/:domain/reset", controllers.ResetHostingerDNS)
|
|
protected.Get("/hostinger/orders", controllers.GetHostingerOrders)
|
|
protected.Get("/hostinger/hosting", controllers.GetHostingerHosting)
|
|
// Domains: escritura
|
|
protected.Put("/hostinger/domains/:domain/nameservers", controllers.UpdateHostingerNameservers)
|
|
protected.Put("/hostinger/domains/:domain/domain-lock", controllers.EnableHostingerDomainLock)
|
|
protected.Delete("/hostinger/domains/:domain/domain-lock", controllers.DisableHostingerDomainLock)
|
|
protected.Put("/hostinger/domains/:domain/privacy", controllers.EnableHostingerPrivacy)
|
|
protected.Delete("/hostinger/domains/:domain/privacy", controllers.DisableHostingerPrivacy)
|
|
// VPS: acciones
|
|
protected.Post("/hostinger/vps/:id/start", controllers.StartHostingerVPS)
|
|
protected.Post("/hostinger/vps/:id/stop", controllers.StopHostingerVPS)
|
|
protected.Post("/hostinger/vps/:id/restart", controllers.RestartHostingerVPS)
|
|
protected.Put("/hostinger/vps/:id/root-password", controllers.SetHostingerVPSRootPassword)
|
|
protected.Put("/hostinger/vps/:id/hostname", controllers.SetHostingerVPSHostname)
|
|
protected.Get("/hostinger/vps/:id/metrics", controllers.GetHostingerVPSMetrics)
|
|
protected.Get("/hostinger/vps/:id/backups", controllers.GetHostingerVPSBackups)
|
|
// Billing: autorenovación
|
|
protected.Patch("/hostinger/billing/:id/auto-renewal/enable", controllers.EnableHostingerAutoRenewal)
|
|
protected.Delete("/hostinger/billing/:id/auto-renewal/disable", controllers.DisableHostingerAutoRenewal)
|
|
|
|
// ─── Cloudflare API ───────────────────────────────────────────────
|
|
protected.Get("/cloudflare", middlewares.MenuMiddleware, controllers.CloudflareConfigPage)
|
|
protected.Post("/cloudflare/config", controllers.SaveCloudflareConfig)
|
|
protected.Get("/cloudflare/verify", controllers.VerifyCloudflareToken)
|
|
protected.Post("/cloudflare/clean-token", controllers.CleanCloudflareToken)
|
|
protected.Get("/cloudflare/user", controllers.GetCloudflareUser)
|
|
protected.Get("/cloudflare/zones", controllers.GetCloudflareZones)
|
|
protected.Get("/cloudflare/zones/:zone_id/dns", controllers.GetCloudflareDNS)
|
|
protected.Post("/cloudflare/zones/:zone_id/dns", controllers.CreateCloudflareDNS)
|
|
protected.Put("/cloudflare/zones/:zone_id/dns/:record_id", controllers.UpdateCloudflareDNS)
|
|
protected.Patch("/cloudflare/zones/:zone_id/dns/:record_id", controllers.PatchCloudflareDNS)
|
|
protected.Delete("/cloudflare/zones/:zone_id/dns/:record_id", controllers.DeleteCloudflareDNS)
|
|
protected.Get("/cloudflare/zones/:zone_id/ssl", controllers.GetCloudflareSSL)
|
|
protected.Get("/cloudflare/zones/:zone_id/firewall", controllers.GetCloudflareFirewall)
|
|
|
|
// ─── Coolify API ──────────────────────────────────────────────────
|
|
protected.Get("/coolify", middlewares.MenuMiddleware, controllers.CoolifyIndex)
|
|
protected.Get("/coolify/config", controllers.CoolifyGetConfig)
|
|
protected.Post("/coolify/config", controllers.CoolifySaveConfig)
|
|
protected.Get("/coolify/health", controllers.CoolifyTestConnection)
|
|
// Applications
|
|
protected.Get("/coolify/apps", controllers.CoolifyListApplications)
|
|
protected.Get("/coolify/apps/:uuid", controllers.CoolifyGetApplication)
|
|
protected.Get("/coolify/apps/:uuid/logs", controllers.CoolifyApplicationLogs)
|
|
protected.Get("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvs)
|
|
protected.Post("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvCreate)
|
|
protected.Patch("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvUpdateBulk)
|
|
protected.Delete("/coolify/apps/:uuid/envs/:env_id", controllers.CoolifyApplicationEnvDelete)
|
|
protected.Get("/coolify/apps/:uuid/start", controllers.CoolifyApplicationStart)
|
|
protected.Get("/coolify/apps/:uuid/stop", controllers.CoolifyApplicationStop)
|
|
protected.Get("/coolify/apps/:uuid/restart", controllers.CoolifyApplicationRestart)
|
|
protected.Get("/coolify/apps/:uuid/deployments", controllers.CoolifyApplicationDeployments)
|
|
protected.Post("/coolify/apps/:uuid/deploy", controllers.CoolifyApplicationDeploy)
|
|
// Servers
|
|
protected.Get("/coolify/servers", controllers.CoolifyListServers)
|
|
protected.Get("/coolify/servers/:uuid", controllers.CoolifyGetServer)
|
|
protected.Get("/coolify/servers/:uuid/resources", controllers.CoolifyServerResources)
|
|
protected.Get("/coolify/servers/:uuid/domains", controllers.CoolifyServerDomains)
|
|
protected.Get("/coolify/servers/:uuid/validate", controllers.CoolifyServerValidate)
|
|
// Services
|
|
protected.Get("/coolify/services", controllers.CoolifyListServices)
|
|
protected.Get("/coolify/services/:uuid", controllers.CoolifyGetService)
|
|
protected.Get("/coolify/services/:uuid/start", controllers.CoolifyServiceStart)
|
|
protected.Get("/coolify/services/:uuid/stop", controllers.CoolifyServiceStop)
|
|
protected.Get("/coolify/services/:uuid/restart", controllers.CoolifyServiceRestart)
|
|
protected.Get("/coolify/services/:uuid/envs", controllers.CoolifyServiceEnvs)
|
|
protected.Patch("/coolify/services/:uuid/envs", controllers.CoolifyServiceEnvUpdateBulk)
|
|
// Databases
|
|
protected.Get("/coolify/databases", controllers.CoolifyListDatabases)
|
|
protected.Get("/coolify/databases/:uuid", controllers.CoolifyGetDatabase)
|
|
protected.Get("/coolify/databases/:uuid/start", controllers.CoolifyDatabaseStart)
|
|
protected.Get("/coolify/databases/:uuid/stop", controllers.CoolifyDatabaseStop)
|
|
protected.Get("/coolify/databases/:uuid/restart", controllers.CoolifyDatabaseRestart)
|
|
// Projects
|
|
protected.Get("/coolify/projects", controllers.CoolifyListProjects)
|
|
protected.Get("/coolify/projects/:uuid", controllers.CoolifyGetProject)
|
|
protected.Get("/coolify/projects/:uuid/environments", controllers.CoolifyProjectEnvironments)
|
|
// Deployments
|
|
protected.Get("/coolify/deployments", controllers.CoolifyListDeployments)
|
|
protected.Get("/coolify/deployments/:uuid", controllers.CoolifyGetDeployment)
|
|
// Team
|
|
protected.Get("/coolify/team", controllers.CoolifyCurrentTeam)
|
|
protected.Get("/coolify/team/members", controllers.CoolifyTeamMembers)
|
|
protected.Get("/coolify/teams", controllers.CoolifyListTeams)
|
|
|
|
// ─── Pasarelas de Pago ────────────────────────────────────────────
|
|
protected.Get("/pasarelas-pago", middlewares.MenuMiddleware, controllers.PasarelasPage)
|
|
// Bold
|
|
protected.Get("/pasarelas/bold/config", controllers.GetBoldConfigAPI)
|
|
protected.Post("/pasarelas/bold/save", controllers.SaveBoldConfig)
|
|
protected.Get("/pasarelas/bold/logs", controllers.BoldWebhookLogs)
|
|
protected.Post("/pasarelas/bold/logs/:id/validar", controllers.ValidarBoldLog)
|
|
protected.Get("/pasarelas/bold/callbacks", controllers.BoldCallbackLogs)
|
|
protected.Post("/pasarelas/bold/callbacks/:id/validar", controllers.ValidarBoldCallback)
|
|
// dLocal
|
|
protected.Get("/pasarelas/dlocal/config", controllers.GetDlocalConfigAPI)
|
|
protected.Post("/pasarelas/dlocal/save", controllers.SaveDlocalConfigWeb)
|
|
protected.Get("/pasarelas/dlocal/logs", controllers.DlocalPaymentLogsPaginated)
|
|
protected.Post("/pasarelas/dlocal/logs/:id/validar", controllers.ValidarDlocalLog)
|
|
protected.Post("/pasarelas/dlocal/registro-pago", apiControllers.DlocalRegistrarPago)
|
|
// Bold API (crear link, consultar estado)
|
|
protected.Post("/pasarelas/bold/crear-link", apiControllers.BoldCreatePaymentLink)
|
|
protected.Get("/pasarelas/bold/link/:linkID", apiControllers.BoldGetLinkStatus)
|
|
|
|
// ─── Productos SaaS ──────────────────────────────────────────────────────
|
|
protected.Get("/saas", middlewares.MenuMiddleware, controllers.SaasIndex)
|
|
protected.Get("/loadsaas", controllers.GetSaasProductos)
|
|
protected.Post("/saas", controllers.CreateSaasProducto)
|
|
protected.Put("/saas/:id", controllers.UpdateSaasProducto)
|
|
protected.Delete("/saas/:id", controllers.DeleteSaasProducto)
|
|
protected.Get("/saas/:id/health", controllers.HealthCheckSaas)
|
|
|
|
// ─── Documentación: categorías globales ──────────────────────────────────
|
|
protected.Get("/doc/categorias", middlewares.MenuMiddleware, controllers.DocCategoriasIndex)
|
|
protected.Get("/doc/loadcategorias", controllers.GetDocCategorias)
|
|
protected.Post("/doc/categorias", controllers.CreateDocCategoria)
|
|
protected.Put("/doc/categorias/:id", controllers.UpdateDocCategoria)
|
|
protected.Delete("/doc/categorias/:id", controllers.DeleteDocCategoria)
|
|
|
|
// ─── Documentación: páginas ───────────────────────────────────────────────
|
|
protected.Get("/doc/paginas", middlewares.MenuMiddleware, controllers.DocPaginasIndex)
|
|
protected.Get("/doc/loadpaginas", controllers.GetDocPaginas)
|
|
protected.Get("/doc/paginas/:id", controllers.GetDocPaginaDetalle)
|
|
protected.Post("/doc/paginas", controllers.CreateDocPagina)
|
|
protected.Put("/doc/paginas/:id", controllers.UpdateDocPagina)
|
|
protected.Delete("/doc/paginas/:id", controllers.DeleteDocPagina)
|
|
|
|
// ─── Documentación: lectura privada (usuario logueado) ───────────────────
|
|
protected.Get("/docs/:saas", middlewares.MenuMiddleware, controllers.DocsPrivadoIndex)
|
|
protected.Get("/docs/:saas/:slug", middlewares.MenuMiddleware, controllers.DocsPrivadaPagina)
|
|
|
|
// ─── Integraciones SaaS (dispatcher de pagos) ─────────────────────────────
|
|
protected.Get("/saas-api", middlewares.MenuMiddleware, controllers.SaasApiIndex)
|
|
protected.Get("/loadsaasapi", controllers.GetSaasApiConfigs)
|
|
protected.Post("/saas-api", controllers.CreateSaasApiConfig)
|
|
protected.Put("/saas-api/:id", controllers.UpdateSaasApiConfig)
|
|
protected.Delete("/saas-api/:id", controllers.DeleteSaasApiConfig)
|
|
protected.Post("/saas-api/:id/probar", controllers.ProbaSaasApiConfig)
|
|
|
|
// Logs de despacho
|
|
protected.Get("/saas-api/logs", middlewares.MenuMiddleware, controllers.SaasDispatchLogIndex)
|
|
protected.Get("/loadsaasdispatchlogs", controllers.GetSaasDispatchLogs)
|
|
|
|
// ─── Alibaba Cloud OSS API ────────────────────────────────────────────────
|
|
protected.Get("/oss-api", middlewares.MenuMiddleware, controllers.OssApiIndex)
|
|
protected.Get("/loadossapi", controllers.GetOssApiConfigs)
|
|
protected.Post("/oss-api", controllers.CreateOssApiConfig)
|
|
protected.Put("/oss-api/:id", controllers.UpdateOssApiConfig)
|
|
protected.Delete("/oss-api/:id", controllers.DeleteOssApiConfig)
|
|
|
|
// ─── VCard API (integración Admin Laravel) ────────────────────────────────
|
|
protected.Get("/vcard-api", middlewares.MenuMiddleware, controllers.VcardApiIndex)
|
|
protected.Post("/vcard-api/login", controllers.VcardApiLogin)
|
|
protected.Get("/vcard-api/config", controllers.VcardApiGetConfig)
|
|
protected.Post("/vcard-api/config", controllers.VcardApiSaveConfig)
|
|
// Usuarios (GET)
|
|
protected.Get("/vcard-api/usuarios", controllers.VcardApiUsuarios)
|
|
protected.Get("/vcard-api/usuarios/:id/membresia", controllers.VcardApiMembresia)
|
|
protected.Get("/vcard-api/usuarios/:userId/vcards", controllers.VcardApiVcardsByUsuario)
|
|
protected.Get("/vcard-api/usuarios/:userId/pagos", controllers.VcardApiPagosByUsuario)
|
|
protected.Get("/vcard-api/usuarios/:userId/transacciones", controllers.VcardApiTransaccionesByUsuario)
|
|
protected.Get("/vcard-api/usuarios/:userId/logs", controllers.VcardApiLogsByUsuario)
|
|
protected.Get("/vcard-api/usuarios/:userId/miniwebs", controllers.VcardApiMiniwebsByUsuario)
|
|
protected.Get("/vcard-api/usuarios/:id", controllers.VcardApiUsuario)
|
|
// Usuarios (mutaciones)
|
|
protected.Put("/vcard-api/usuarios/:id", controllers.VcardApiUsuarioUpdate)
|
|
protected.Post("/vcard-api/usuarios/:id/activar", controllers.VcardApiUsuarioActivar)
|
|
protected.Post("/vcard-api/usuarios/:id/desactivar", controllers.VcardApiUsuarioDesactivar)
|
|
protected.Post("/vcard-api/usuarios/:id/activar-membresia", controllers.VcardApiActivarMembresia)
|
|
protected.Post("/vcard-api/usuarios/:id/desactivar-membresia", controllers.VcardApiDesactivarMembresia)
|
|
protected.Post("/vcard-api/usuarios/:id/cambiar-plan", controllers.VcardApiCambiarPlan)
|
|
// VCards
|
|
protected.Get("/vcard-api/vcards", controllers.VcardApiVcards)
|
|
protected.Get("/vcard-api/vcards/:id", controllers.VcardApiVcard)
|
|
protected.Put("/vcard-api/vcards/:id", controllers.VcardApiVcardUpdate)
|
|
// Resto (solo GET)
|
|
protected.Get("/vcard-api/planes", controllers.VcardApiPlanes)
|
|
protected.Get("/vcard-api/planes/:id", controllers.VcardApiPlan)
|
|
protected.Put("/vcard-api/planes/:id", controllers.VcardApiPlanUpdate)
|
|
protected.Get("/vcard-api/pagos", controllers.VcardApiPagos)
|
|
protected.Get("/vcard-api/transacciones", controllers.VcardApiTransacciones)
|
|
protected.Get("/vcard-api/logs", controllers.VcardApiLogs)
|
|
protected.Get("/vcard-api/miniwebs", controllers.VcardApiMiniwebs)
|
|
protected.Get("/vcard-api/miniwebs/:id", controllers.VcardApiMiniweb)
|
|
|
|
// ─── Telegram ─────────────────────────────────────────────────────────────
|
|
protected.Get("/telegram", middlewares.MenuMiddleware, controllers.TelegramIndex)
|
|
protected.Get("/loadtelegram", controllers.GetTelegramConfigs)
|
|
protected.Post("/telegram", controllers.CreateTelegramConfig)
|
|
protected.Put("/telegram/:id", controllers.UpdateTelegramConfig)
|
|
protected.Delete("/telegram/:id", controllers.DeleteTelegramConfig)
|
|
protected.Post("/telegram/:id/test", controllers.TestTelegramConfig)
|
|
protected.Post("/telegram/send", controllers.SendTelegramNotification)
|
|
protected.Get("/telegram/logs", controllers.GetTelegramLogs)
|
|
protected.Post("/telegram/:id/set-portal-webhook", controllers.SetPortalWebhook)
|
|
protected.Get("/telegram/:id/webhook-info", controllers.GetPortalWebhookInfo)
|
|
|
|
// ─── Portal de Clientes ────────────────────────────────────────────────────
|
|
protected.Get("/proyectos", middlewares.MenuMiddleware, controllers.ProyectosIndex)
|
|
protected.Get("/loadproyectos", controllers.LoadProyectos)
|
|
protected.Post("/proyectos", controllers.CreateProyecto)
|
|
protected.Put("/proyectos/:id", controllers.UpdateProyecto)
|
|
protected.Delete("/proyectos/:id", controllers.DeleteProyecto)
|
|
protected.Get("/proyectos/:id/detalle", middlewares.MenuMiddleware, controllers.ProyectoDetalleIndex)
|
|
protected.Get("/proyectos/:id/fases", controllers.GetFases)
|
|
protected.Post("/proyectos/:id/fases", controllers.CreateFase)
|
|
protected.Put("/proyectos/:id/fases/:faseID", controllers.UpdateFase)
|
|
protected.Delete("/proyectos/:id/fases/:faseID", controllers.DeleteFase)
|
|
protected.Post("/proyectos/:id/fases/template", controllers.ApplyTemplate)
|
|
protected.Get("/proyectos/:id/avances", controllers.GetAvances)
|
|
protected.Post("/proyectos/:id/avances", controllers.CreateAvance)
|
|
protected.Put("/proyectos/:id/avances/:avID", controllers.UpdateAvance)
|
|
protected.Delete("/proyectos/:id/avances/:avID", controllers.DeleteAvance)
|
|
protected.Get("/proyectos/:id/entregables", controllers.GetEntregables)
|
|
protected.Post("/proyectos/:id/entregables", controllers.UploadEntregable)
|
|
protected.Delete("/proyectos/:id/entregables/:entID", controllers.DeleteEntregable)
|
|
protected.Get("/proyectos/:id/entregables/:entID/download", controllers.DownloadEntregable)
|
|
protected.Put("/proyectos/:id/entregables/:entID/visibilidad", controllers.UpdateEntregableVisibilidad)
|
|
protected.Get("/proyectos/:id/tickets", controllers.GetTickets)
|
|
protected.Put("/proyectos/:id/tickets/:ticketID/estado", controllers.UpdateTicketEstadoAdmin)
|
|
protected.Post("/proyectos/:id/tickets/:ticketID/mensaje", controllers.AdminResponderTicket)
|
|
protected.Get("/proyectos/:id/documentos", controllers.GetDocumentos)
|
|
protected.Post("/proyectos/:id/documentos", controllers.UploadDocumento)
|
|
protected.Delete("/proyectos/:id/documentos/:docID", controllers.DeleteDocumento)
|
|
protected.Get("/proyectos/:id/documentos/:docID/download", controllers.DownloadDocumento)
|
|
|
|
protected.Get("/portal-usuarios", middlewares.MenuMiddleware, controllers.PortalUsuariosIndex)
|
|
protected.Get("/loadportalusuarios", controllers.LoadPortalUsuarios)
|
|
protected.Get("/loadportalusuarios/:id", controllers.GetPortalUsuarioDetail)
|
|
protected.Post("/portal-usuarios", controllers.CreatePortalUsuario)
|
|
protected.Put("/portal-usuarios/:id", controllers.UpdatePortalUsuario)
|
|
protected.Delete("/portal-usuarios/:id", controllers.DeletePortalUsuario)
|
|
protected.Get("/portal-usuarios/:id/rut-file", controllers.PortalUsuarioRutFile)
|
|
protected.Post("/portal-usuarios/:id/acceso", controllers.AddPortalAcceso)
|
|
protected.Delete("/portal-usuarios/:id/acceso/:clienteID", controllers.RemovePortalAcceso)
|
|
protected.Post("/portal-usuarios/:id/send-credentials", controllers.SendPortalCredentials)
|
|
|
|
protected.Get("/facturas", middlewares.MenuMiddleware, controllers.FacturasIndex)
|
|
protected.Get("/loadfacturas", controllers.LoadFacturas)
|
|
protected.Post("/facturas", controllers.CreateFactura)
|
|
protected.Put("/facturas/:id", controllers.UpdateFactura)
|
|
protected.Delete("/facturas/:id", controllers.DeleteFactura)
|
|
protected.Post("/facturas/:id/upload-pdf", controllers.UploadFacturaPDF)
|
|
protected.Get("/facturas/:id/download", controllers.DownloadFacturaPDF)
|
|
|
|
// ─── USITE Shield ─────────────────────────────────────────────────────────
|
|
protected.Get("/shield", middlewares.MenuMiddleware, controllers.ShieldIndex)
|
|
protected.Get("/loadshield", controllers.LoadShieldConfig)
|
|
protected.Post("/saveshield", controllers.SaveShieldConfig)
|
|
protected.Get("/shield/health", controllers.ShieldHealth)
|
|
protected.Get("/shield/extension-version", controllers.ShieldExtensionVersion)
|
|
protected.Get("/shield/logs", controllers.ShieldLogs)
|
|
protected.Get("/shield/logs/stats", controllers.ShieldLogStats)
|
|
protected.Get("/shield/review-requests", controllers.ShieldReviewRequests)
|
|
protected.Put("/shield/review-requests/:id/approve", controllers.ShieldApproveRequest)
|
|
protected.Put("/shield/review-requests/:id/reject", controllers.ShieldRejectRequest)
|
|
protected.Get("/shield/whitelist", controllers.ShieldWhitelist)
|
|
protected.Post("/shield/whitelist", controllers.ShieldAddWhitelist)
|
|
protected.Delete("/shield/whitelist/:domain", controllers.ShieldDeleteWhitelist)
|
|
protected.Get("/shield/blacklist", controllers.ShieldBlacklist)
|
|
protected.Post("/shield/blacklist", controllers.ShieldAddBlacklist)
|
|
protected.Delete("/shield/blacklist/:domain", controllers.ShieldDeleteBlacklist)
|
|
protected.Get("/shield/reputation/:domain", controllers.ShieldReputation)
|
|
protected.Put("/shield/reputation/:domain/score", controllers.ShieldAdjustScore)
|
|
|
|
// Tickets global (todos los proyectos)
|
|
protected.Get("/tickets", middlewares.MenuMiddleware, controllers.TicketsAdminIndex)
|
|
protected.Get("/tickets/data", controllers.GetAllTicketsAdmin)
|
|
protected.Put("/tickets/:ticketID/estado", controllers.UpdateTicketEstadoAdmin)
|
|
protected.Post("/tickets/:ticketID/mensaje", controllers.AdminResponderTicket)
|
|
|
|
// Configuración de notificaciones
|
|
protected.Get("/notif-config", middlewares.MenuMiddleware, controllers.NotifConfigIndex)
|
|
protected.Get("/notif-config/data", controllers.GetNotifConfigs)
|
|
protected.Post("/notif-config", controllers.SaveNotifConfig)
|
|
// Umbrales de alerta de servidores
|
|
protected.Get("/servidor-alerta-config", controllers.GetServidorAlertaConfig)
|
|
protected.Post("/servidor-alerta-config", controllers.SaveServidorAlertaConfig)
|
|
|
|
// Partner Recursos (documentación y comunicados para partners)
|
|
protected.Get("/partner-recursos", middlewares.MenuMiddleware, controllers.PartnerRecursosIndex)
|
|
protected.Get("/partner-recursos/data", controllers.LoadPartnerRecursos)
|
|
protected.Post("/partner-recursos", controllers.CreatePartnerRecurso)
|
|
protected.Put("/partner-recursos/:id", controllers.UpdatePartnerRecurso)
|
|
protected.Delete("/partner-recursos/:id", controllers.DeletePartnerRecurso)
|
|
protected.Post("/partner-recursos/:id/upload", controllers.UploadPartnerRecursoArchivo)
|
|
protected.Get("/partner-recursos/:id/download", controllers.DownloadPartnerRecurso)
|
|
|
|
protected.Get("/partner-comunicados/data", controllers.LoadPartnerComunicados)
|
|
protected.Post("/partner-comunicados", controllers.CreatePartnerComunicado)
|
|
protected.Put("/partner-comunicados/:id", controllers.UpdatePartnerComunicado)
|
|
protected.Delete("/partner-comunicados/:id", controllers.DeletePartnerComunicado)
|
|
protected.Post("/partner-comunicados/:id/upload", controllers.UploadPartnerComunicadoArchivo)
|
|
protected.Get("/partner-comunicados/:id/download", controllers.DownloadPartnerComunicadoArchivo)
|
|
|
|
// Notificaciones in-app del admin (bell)
|
|
protected.Get("/mis-notifs", controllers.GetMisNotifs)
|
|
protected.Put("/mis-notifs/:id/leida", controllers.MarcarNotifLeida)
|
|
protected.Post("/mis-notifs/marcar-todas", controllers.MarcarTodasLeidas)
|
|
|
|
// ─── Planes dLocal (gestión desde panel protegido) ────────────────────────
|
|
protected.Get("/dlocal/planes", apiControllers.SeePlanes)
|
|
protected.Post("/dlocal/planes", apiControllers.CreatePlan)
|
|
protected.Get("/dlocal/planes/:planID", apiControllers.SeePlan)
|
|
protected.Patch("/dlocal/planes/:planID", apiControllers.UpdatedPlan)
|
|
protected.Patch("/dlocal/planes/:planID/subscription/:subscriptionId/deactivate", apiControllers.DeactivatePlan)
|
|
}
|