package servers import ( "git.acooldomain.co/server-manager/backend/auth" "git.acooldomain.co/server-manager/backend/factories" "git.acooldomain.co/server-manager/backend/models" "github.com/gin-gonic/gin" ) func (con ServersApi) GetBrowsers(ctx *gin.Context) { fileBrowsers, err := con.InstanceManager.ListFileBrowsers(ctx) if err != nil { ctx.AbortWithError(500, err) return } ctx.JSON(200, fileBrowsers) } func (con ServersApi) StopBrowser(ctx *gin.Context) { serverId := ctx.Param("server_id") err := con.InstanceManager.StopFileBrowser(ctx, serverId) if err != nil { ctx.AbortWithError(500, err) return } ctx.Status(200) } func LoadBrowsersGroup(group *gin.RouterGroup, config models.GlobalConfig) { serversDbHandler, err := factories.GetServersDbHandler(config.ServersDatabase) if err != nil { panic(err) } serversAuthorizationHandler, err := factories.GetServersAuthorizationDbHandler(config.ServersAuthorizationDatabase) if err != nil { panic(err) } instanceManager, err := factories.GetInstanceManager(config.InstanceManager) if err != nil { panic(err) } connection := ServersApi{ ServersDbHandler: serversDbHandler, ServerAuthorization: serversAuthorizationHandler, InstanceManager: instanceManager, } group.GET("", auth.AuthorizedTo(0), connection.GetBrowsers) group.POST("/:server_id/stop", auth.AuthorizedTo(models.Browse), connection.ServerAuthorized(models.Browse), connection.StopBrowser) }