CasaOS/route/route.go
a624669980@163.com 4ee1c81ea7 change branch
2022-07-13 10:12:30 +08:00

233 lines
7.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 这是一个用来反馈 API 设计的 PR不要 merge
package route
import (
"net/http"
"github.com/IceWhaleTech/CasaOS/middleware"
"github.com/IceWhaleTech/CasaOS/pkg/config"
jwt2 "github.com/IceWhaleTech/CasaOS/pkg/utils/jwt"
v1 "github.com/IceWhaleTech/CasaOS/route/v1"
"github.com/IceWhaleTech/CasaOS/web"
"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
)
var OnlineDemo bool = false
func InitRouter() *gin.Engine {
r := gin.Default()
r.Use(middleware.Cors())
r.Use(middleware.WriteLog())
r.Use(gzip.Gzip(gzip.DefaultCompression))
gin.SetMode(config.ServerInfo.RunMode)
r.StaticFS("/ui", http.FS(web.Static))
r.GET("/", WebUIHome)
// r.StaticFS("/assets", http.Dir("./static/assets"))
// r.StaticFile("/favicon.ico", "./static/favicon.ico")
//r.GET("/", func(c *gin.Context) {
// c.Redirect(http.StatusMovedPermanently, "ui/")
//})
r.POST("/v1/user/register", v1.PostUserRegister)
r.POST("/v1/user/login", v1.PostUserLogin)
r.GET("/v1/users/name", v1.GetUserAllUsername) //all/name
r.POST("/v1/user/refresh", v1.PostUserRefreshToken)
// No short-term modifications
r.GET("/v1/user/image", v1.GetUserImage)
r.GET("/v1/user/status", v1.GetUserStatus) //init/check
//r.GET("/v1/guide/check", v1.GetGuideCheck) // /v1/sys/guide_check
r.GET("/v1/sys/debug", v1.GetSystemConfigDebug) // //debug
r.GET("/v1/sys/socket-port", v1.GetSystemSocketPort) //sys/socket_port
v1Group := r.Group("/v1")
v1Group.Use(jwt2.JWT())
{
v1UserGroup := v1Group.Group("/user")
v1UserGroup.Use()
{
v1UserGroup.GET("/current", v1.GetUserInfo)
v1UserGroup.PUT("/current", v1.PutUserInfo)
v1UserGroup.GET("/current/custom/:key", v1.GetUserCustomConf)
v1UserGroup.POST("/current/custom/:key", v1.PostUserCustomConf)
v1UserGroup.DELETE("/current/custom/:key", v1.DeleteUserCustomConf)
v1UserGroup.POST("/current/image/:key", v1.PostUserUploadImage)
//v1UserGroup.POST("/file/image/:key", v1.PostUserFileImage)
v1UserGroup.DELETE("/current/image", v1.DeleteUserImage)
//v1UserGroup.PUT("/avatar", v1.PutUserAvatar)
//v1UserGroup.GET("/avatar", v1.GetUserAvatar)
v1UserGroup.DELETE("/:id", v1.DeleteUser)
v1UserGroup.GET("/:username", v1.GetUserInfoByUsername)
}
v1UsersGroup := v1Group.Group("/users")
v1UsersGroup.Use()
{
v1UsersGroup.DELETE("", v1.DeleteUserAll)
}
v1AppGroup := v1Group.Group("/app")
v1AppGroup.Use()
{
v1AppGroup.GET("/:id", v1.AppInfo)
}
v1AppsGroup := v1Group.Group("/apps")
v1AppsGroup.Use()
{
v1AppsGroup.GET("/", v1.AppList) //list
}
v1ContainerGroup := v1Group.Group("/container")
v1ContainerGroup.Use()
{
v1ContainerGroup.GET("/", v1.MyAppList) ///my/list
v1ContainerGroup.GET("/usage", v1.AppUsageList)
v1ContainerGroup.GET("/:id", v1.ContainerUpdateInfo) ///update/:id/info
v1ContainerGroup.GET("/:id/logs", v1.ContainerLog) // /app/logs/:id
v1ContainerGroup.GET("/networks", v1.GetDockerNetworks) //app/install/config
v1ContainerGroup.GET("/:id/state", v1.GetContainerState) //app/state/:id ?state=install_progress
// there are problems, temporarily do not deal with
v1ContainerGroup.GET("/:id/terminal", v1.DockerTerminal) //app/terminal/:id
v1ContainerGroup.POST("/", v1.InstallApp) //app/install
//v1ContainerGroup.GET("/:id", v1.ContainerInfo) // /app/info/:id
v1ContainerGroup.PUT("/:id", v1.UpdateSetting) ///update/:id/setting
v1ContainerGroup.PUT("/:id/state", v1.ChangAppState) // /app/state/:id
v1ContainerGroup.DELETE("/:id", v1.UnInstallApp) //app/uninstall/:id
//Not used
v1ContainerGroup.PUT("/:id/latest", v1.PutAppUpdate)
//Not used
v1ContainerGroup.POST("/share", v1.ShareAppFile)
}
v1AppCategoriesGroup := v1Group.Group("/app-categories")
v1AppCategoriesGroup.Use()
{
v1AppCategoriesGroup.GET("/", v1.CategoryList)
}
v1SysGroup := v1Group.Group("/sys")
v1SysGroup.Use()
{
v1SysGroup.GET("/version", v1.GetSystemCheckVersion) //version/check
v1SysGroup.POST("/update", v1.SystemUpdate)
v1SysGroup.GET("/hardware", v1.GetSystemHardwareInfo) //hardware/info
v1SysGroup.GET("/wsssh", v1.WsSsh)
//v1SysGroup.GET("/config", v1.GetSystemConfig) //delete
//v1SysGroup.POST("/config", v1.PostSetSystemConfig)
v1SysGroup.GET("/logs", v1.GetCasaOSErrorLogs) //error/logs
//v1SysGroup.GET("/widget/config", v1.GetWidgetConfig)//delete
//v1SysGroup.POST("/widget/config", v1.PostSetWidgetConfig)//delete
v1SysGroup.POST("/stop", v1.PostKillCasaOS)
v1SysGroup.GET("/utilization", v1.GetSystemUtilization)
v1SysGroup.GET("/cpu", v1.GetSystemCupInfo)
v1SysGroup.GET("/mem", v1.GetSystemMemInfo)
v1SysGroup.GET("/disk", v1.GetSystemDiskInfo)
v1SysGroup.GET("/network", v1.GetSystemNetInfo)
v1SysGroup.PUT("/usb-auto-mount", v1.PutSystemUSBAutoMount) ///sys/usb/:status
v1SysGroup.GET("/usb-auto-mount", v1.GetSystemUSBAutoMount) ///sys/usb/status
v1SysGroup.GET("/port", v1.GetCasaOSPort)
v1SysGroup.PUT("/port", v1.PutCasaOSPort)
}
v1PortGroup := v1Group.Group("/port")
v1PortGroup.Use()
{
v1PortGroup.GET("/", v1.GetPort) //app/port
v1PortGroup.GET("/state/:port", v1.PortCheck) //app/check/:port
}
v1FileGroup := v1Group.Group("/file")
v1FileGroup.Use()
{
v1FileGroup.GET("/", v1.GetDownloadSingleFile) //download/:path
v1FileGroup.POST("/", v1.PostCreateFile)
v1FileGroup.PUT("/", v1.PutFileContent)
v1FileGroup.PUT("/name", v1.RenamePath)
//file/rename
v1FileGroup.GET("/content", v1.GetFilerContent) //file/read
//File uploads need to be handled separately, and will not be modified here
v1FileGroup.POST("/upload", v1.PostFileUpload)
v1FileGroup.GET("/upload", v1.GetFileUpload)
//v1FileGroup.GET("/download", v1.UserFileDownloadCommonService)
}
v1FolderGroup := v1Group.Group("/folder")
v1FolderGroup.Use()
{
v1FolderGroup.PUT("/name", v1.RenamePath)
v1FolderGroup.GET("/", v1.DirPath) ///file/dirpath
v1FolderGroup.POST("/", v1.MkdirAll) ///file/mkdir
}
v1BatchGroup := v1Group.Group("/batch")
v1BatchGroup.Use()
{
v1BatchGroup.DELETE("/", v1.DeleteFile) //file/delete
v1BatchGroup.DELETE("/:id/task", v1.DeleteOperateFileOrDir)
v1BatchGroup.POST("/task", v1.PostOperateFileOrDir) //file/operate
v1BatchGroup.GET("/", v1.GetDownloadFile)
}
v1ImageGroup := v1Group.Group("/image")
v1ImageGroup.Use()
{
v1ImageGroup.GET("/", v1.GetFileImage)
}
v1DiskGroup := v1Group.Group("/disk")
v1DiskGroup.Use()
{
//v1DiskGroup.GET("/check", v1.GetDiskCheck) //delete
v1DiskGroup.GET("/", v1.GetDiskInfo)
v1DiskGroup.POST("/", v1.PostMountDisk)
// //format storage
// v1DiskGroup.POST("/format", v1.PostDiskFormat)
// //mount SATA disk
// v1DiskGroup.POST("/mount", v1.PostMountDisk)
// //umount sata disk
// v1DiskGroup.POST("/umount", v1.PostDiskUmount)
//v1DiskGroup.GET("/type", v1.FormatDiskType)//delete
v1DiskGroup.DELETE("/part", v1.RemovePartition) //disk/delpart
}
v1StorageGroup := v1Group.Group("/storage")
v1StorageGroup.Use()
{
v1StorageGroup.POST("/", v1.PostDiskAddPartition)
//v1StorageGroup.GET("/", v1.GetStorageList)
}
v1DisksGroup := v1Group.Group("/disks")
v1DisksGroup.Use()
{
//v1UsbGroup.GET("/", v1.GetUSBList)
v1DisksGroup.GET("/", v1.GetDiskList)
}
v1Group.GET("/sync/config", v1.GetSyncConfig)
}
return r
}