257 lines
7.7 KiB
Go
257 lines
7.7 KiB
Go
|
package route
|
||
|
|
||
|
import (
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"net/http"
|
||
|
"oasis/middleware"
|
||
|
"oasis/pkg/config"
|
||
|
jwt2 "oasis/pkg/utils/jwt"
|
||
|
v1 "oasis/route/v1"
|
||
|
"oasis/web"
|
||
|
)
|
||
|
|
||
|
var swagHandler gin.HandlerFunc
|
||
|
|
||
|
func InitRouter(swagHandler gin.HandlerFunc) *gin.Engine {
|
||
|
|
||
|
r := gin.Default()
|
||
|
r.Use(middleware.Cors())
|
||
|
gin.SetMode(config.ServerInfo.RunMode)
|
||
|
|
||
|
r.StaticFS("/ui", http.FS(web.Static))
|
||
|
r.GET("/", func(c *gin.Context) {
|
||
|
c.Redirect(http.StatusMovedPermanently, "ui/")
|
||
|
})
|
||
|
if swagHandler != nil {
|
||
|
r.GET("/swagger/*any", swagHandler)
|
||
|
}
|
||
|
//登录
|
||
|
r.POST("/v1/user/login", v1.Login)
|
||
|
|
||
|
r.GET("/debug", v1.GetSystemConfigDebug)
|
||
|
|
||
|
v1Group := r.Group("/v1")
|
||
|
|
||
|
v1Group.Use(jwt2.JWT(swagHandler))
|
||
|
{
|
||
|
v1UserGroup := v1Group.Group("/user")
|
||
|
v1UserGroup.Use()
|
||
|
{
|
||
|
//设置用户
|
||
|
v1UserGroup.POST("/setusernamepwd", v1.Set_Name_Pwd)
|
||
|
//chang head
|
||
|
v1UserGroup.POST("/changhead", v1.Up_Load_Head)
|
||
|
//chang user name
|
||
|
v1UserGroup.PUT("/changusername", v1.Chang_User_Name)
|
||
|
//chang pwd
|
||
|
v1UserGroup.PUT("/changuserpwd", v1.Chang_User_Pwd)
|
||
|
//edit user info
|
||
|
v1UserGroup.POST("/changuserinfo", v1.Chang_User_Info)
|
||
|
//get user info
|
||
|
v1UserGroup.GET("/info", v1.UserInfo)
|
||
|
}
|
||
|
|
||
|
v1ZiMaGroup := v1Group.Group("/zima")
|
||
|
v1ZiMaGroup.Use()
|
||
|
{
|
||
|
//获取cpu信息
|
||
|
v1ZiMaGroup.GET("/getcpuinfo", v1.CupInfo)
|
||
|
//获取内存信息
|
||
|
v1ZiMaGroup.GET("/getmeminfo", v1.MemInfo)
|
||
|
//获取硬盘信息
|
||
|
v1ZiMaGroup.GET("/getdiskinfo", v1.DiskInfo)
|
||
|
|
||
|
//获取网络信息
|
||
|
v1ZiMaGroup.GET("/getnetinfo", v1.NetInfo)
|
||
|
//获取网络信息
|
||
|
v1ZiMaGroup.GET("/getinfo", v1.Info)
|
||
|
//获取系统信息
|
||
|
v1ZiMaGroup.GET("/sysinfo", v1.SysInfo)
|
||
|
}
|
||
|
|
||
|
v1ZeroTierGroup := v1Group.Group("/zerotier")
|
||
|
v1ZeroTierGroup.Use()
|
||
|
{
|
||
|
//获取zerotier token
|
||
|
v1ZeroTierGroup.POST("/login", v1.ZeroTierGetToken)
|
||
|
//注册zerotier
|
||
|
v1ZeroTierGroup.POST("/register", v1.ZeroTierRegister)
|
||
|
//是否需要登录
|
||
|
v1ZeroTierGroup.GET("/islogin", v1.ZeroTierIsNeedLogin)
|
||
|
//获取网络列表
|
||
|
v1ZeroTierGroup.GET("/list", v1.ZeroTierGetNetworkList)
|
||
|
//加入网络
|
||
|
v1ZeroTierGroup.POST("/join/:id", v1.ZeroTierJoinNetwork)
|
||
|
//离开网络
|
||
|
v1ZeroTierGroup.POST("/leave/:id", v1.ZeroTierLeaveNetwork)
|
||
|
//详情
|
||
|
v1ZeroTierGroup.GET("/info/:id", v1.ZeroTierGetNetworkGetInfo)
|
||
|
////网络状态
|
||
|
//v1ZeroTierGroup.GET("/status", v1.ZeroTierGetNetworkGetStatus)
|
||
|
//修改网络类型
|
||
|
//v1ZeroTierGroup.PUT("/type/:id", v1.ZeroTierEditType)
|
||
|
//修改网络类型
|
||
|
//v1ZeroTierGroup.PUT("/name/:id", v1.ZeroTierEditName)
|
||
|
//修改v6 assign
|
||
|
//v1ZeroTierGroup.PUT("/v6assign/:id", v1.ZeroTierEditV6Assign)
|
||
|
//修改 broadcast
|
||
|
//v1ZeroTierGroup.PUT("/broadcast/:id", v1.ZeroTierEditBroadcast)
|
||
|
//create new network
|
||
|
v1ZeroTierGroup.POST("/create", v1.ZeroTierCreateNetwork)
|
||
|
//获取用户列表
|
||
|
v1ZeroTierGroup.GET("/member/:id", v1.ZeroTierMemberList)
|
||
|
//修改用户信息
|
||
|
//v1ZeroTierGroup.PUT("/members/:id/auth/:mId", v1.ZeroTierMemberAuth)
|
||
|
//修改网络用户name
|
||
|
//v1ZeroTierGroup.PUT("/members/:id/name/:mId", v1.ZeroTierMemberName)
|
||
|
v1ZeroTierGroup.DELETE("/members/:id/del/:mId", v1.ZeroTierMemberDelete)
|
||
|
v1ZeroTierGroup.DELETE("/network/:id/del", v1.ZeroTierDeleteNetwork)
|
||
|
//修改网络用户bridge功能
|
||
|
//v1ZeroTierGroup.PUT("/members/:id/bridge/:mId", v1.ZeroTierMemberBridge)
|
||
|
v1ZeroTierGroup.PUT("/edit/:id", v1.ZeroTierEdit)
|
||
|
v1ZeroTierGroup.GET("/joined/list", v1.ZeroTierJoinedList)
|
||
|
v1ZeroTierGroup.PUT("/member/:id/edit/:mId", v1.ZeroTierMemberEdit)
|
||
|
|
||
|
}
|
||
|
v1DDNSGroup := v1Group.Group("/ddns")
|
||
|
v1DDNSGroup.Use()
|
||
|
{
|
||
|
//获取ddns列表
|
||
|
v1DDNSGroup.GET("/getlist", v1.DDNSGetDomainList)
|
||
|
//测试连接性
|
||
|
v1DDNSGroup.GET("/ping/:api_host", v1.DDNSPing)
|
||
|
//获取ip
|
||
|
v1DDNSGroup.GET("/ip", v1.DDNSGetIP)
|
||
|
//设置ddns
|
||
|
v1DDNSGroup.POST("/set", v1.DDNSAddConfig)
|
||
|
//获取ddns
|
||
|
v1DDNSGroup.GET("/list", v1.DDNSConfigList)
|
||
|
//获取ddns
|
||
|
v1DDNSGroup.DELETE("/delete/:id", v1.DDNSDelete)
|
||
|
}
|
||
|
v1AppGroup := v1Group.Group("/app")
|
||
|
v1AppGroup.Use()
|
||
|
{
|
||
|
//获取我的已安装的列表
|
||
|
v1AppGroup.GET("/mylist", v1.MyAppList)
|
||
|
//app详情
|
||
|
v1AppGroup.GET("/appinfo/:id", v1.AppInfo)
|
||
|
//获取未安装的列表
|
||
|
v1AppGroup.GET("/list", v1.AppList)
|
||
|
//获取端口
|
||
|
v1AppGroup.GET("/port", v1.GetPort)
|
||
|
//检查端口
|
||
|
v1AppGroup.GET("/check/:port", v1.PortCheck)
|
||
|
//分类
|
||
|
v1AppGroup.GET("/category", v1.CategoryList)
|
||
|
//容器相关
|
||
|
v1AppGroup.GET("/terminal/:id", v1.DockerTerminal)
|
||
|
//准备安装
|
||
|
//v1AppGroup.GET("/ready/:id", v1.ReadyInstall)
|
||
|
//app容器详情
|
||
|
v1AppGroup.GET("/info/:id", v1.ContainerInfo)
|
||
|
//app容器日志
|
||
|
v1AppGroup.GET("/logs/:id", v1.ContainerLog)
|
||
|
//暂停或启动容器
|
||
|
v1AppGroup.PUT("/state/:id", v1.ChangAppState)
|
||
|
//安装app
|
||
|
v1AppGroup.POST("/install/:id", v1.InstallApp)
|
||
|
//卸载app
|
||
|
v1AppGroup.DELETE("/uninstall/:id", v1.UnInstallApp)
|
||
|
//获取安装进度
|
||
|
v1AppGroup.GET("/speed/:id", v1.GetInstallSpeed)
|
||
|
//获取进度
|
||
|
v1AppGroup.GET("/state/:id", v1.GetContainerState)
|
||
|
//更新容器配置
|
||
|
v1AppGroup.PUT("/update/:id/setting", v1.UpdateSetting)
|
||
|
//获取可能新数据
|
||
|
v1AppGroup.GET("/update/:id/info", v1.ContainerUpdateInfo)
|
||
|
v1AppGroup.GET("/rely/:id/info", v1.ContainerRelyInfo)
|
||
|
v1AppGroup.GET("/install/config", v1.GetDockerInstallConfig)
|
||
|
//v1AppGroup.POST("/custom/install", v1.CustomInstallApp)
|
||
|
|
||
|
}
|
||
|
|
||
|
v1SysGroup := v1Group.Group("/sys")
|
||
|
v1SysGroup.Use()
|
||
|
{
|
||
|
//获取检查版本是否需要升级
|
||
|
v1SysGroup.GET("/check", v1.CheckVersion)
|
||
|
v1SysGroup.POST("/update", v1.SystemUpdate)
|
||
|
v1SysGroup.GET("/sys", v1.Sys)
|
||
|
v1SysGroup.GET("/wsssh", v1.WsSsh)
|
||
|
v1SysGroup.GET("/config", v1.GetSystemConfig)
|
||
|
v1SysGroup.POST("/config", v1.PostSetSystemConfig)
|
||
|
}
|
||
|
v1FileGroup := v1Group.Group("/file")
|
||
|
v1FileGroup.Use()
|
||
|
{
|
||
|
//修改文件名称/目录名称
|
||
|
v1FileGroup.PUT("/rename", v1.RenamePath)
|
||
|
v1FileGroup.GET("/read", v1.GetFilerContent)
|
||
|
v1FileGroup.POST("/upload", v1.PostFileUpload)
|
||
|
v1FileGroup.GET("/dirpath", v1.DirPath)
|
||
|
//创建目录
|
||
|
v1FileGroup.POST("/mkdir", v1.MkdirAll)
|
||
|
|
||
|
v1FileGroup.GET("/download", v1.GetDownloadFile)
|
||
|
//v1FileGroup.GET("/download", v1.UserFileDownloadCommonService)
|
||
|
}
|
||
|
v1DiskGroup := v1Group.Group("/disk")
|
||
|
v1DiskGroup.Use()
|
||
|
{
|
||
|
//获取磁盘列表
|
||
|
v1DiskGroup.GET("/list", v1.GetPlugInDisk)
|
||
|
|
||
|
//获取磁盘详情
|
||
|
v1DiskGroup.GET("/info", v1.GetDiskInfo)
|
||
|
|
||
|
//格式化磁盘
|
||
|
v1DiskGroup.POST("/format", v1.FormatDisk)
|
||
|
|
||
|
//添加分区
|
||
|
v1DiskGroup.POST("/addpart", v1.AddPartition)
|
||
|
|
||
|
//获取可以格式化的内容
|
||
|
v1DiskGroup.GET("/type", v1.FormatDiskType)
|
||
|
|
||
|
//删除分区
|
||
|
v1DiskGroup.DELETE("/delpart", v1.RemovePartition)
|
||
|
|
||
|
}
|
||
|
v1ShareGroup := v1Group.Group("/share")
|
||
|
v1ShareGroup.Use()
|
||
|
{
|
||
|
v1ShareGroup.POST("/add", v1.PostShareDirAdd)
|
||
|
v1ShareGroup.DELETE("/del/:id", v1.DeleteShareDirDel)
|
||
|
v1ShareGroup.GET("/list", v1.GetShareDirList)
|
||
|
v1ShareGroup.GET("/info/:id", v1.GetShareDirInfo)
|
||
|
v1ShareGroup.PUT("/update/:id", v1.PutShareDirEdit)
|
||
|
}
|
||
|
v1TaskGroup := v1Group.Group("/task")
|
||
|
v1TaskGroup.Use()
|
||
|
{
|
||
|
v1TaskGroup.GET("/list", v1.GetTaskList)
|
||
|
v1TaskGroup.PUT("/update", v1.PutTaskUpdate)
|
||
|
v1TaskGroup.POST("/add", v1.PostTaskAdd)
|
||
|
v1TaskGroup.PUT("/completion/:id", v1.PutTaskMarkerCompletion)
|
||
|
|
||
|
}
|
||
|
v1ShortcutsGroup := v1Group.Group("/shortcuts")
|
||
|
v1ShortcutsGroup.Use()
|
||
|
{
|
||
|
v1ShortcutsGroup.GET("/list", v1.GetShortcutsList)
|
||
|
v1ShortcutsGroup.POST("/add", v1.PostShortcutsAdd)
|
||
|
v1ShortcutsGroup.PUT("/edit", v1.PutShortcutsEdit)
|
||
|
v1ShortcutsGroup.DELETE("/del/:id", v1.DeleteShortcutsDelete)
|
||
|
}
|
||
|
v1NotifyGroup := v1Group.Group("/notify")
|
||
|
v1NotifyGroup.Use()
|
||
|
{
|
||
|
v1NotifyGroup.GET("/ws", v1.NotifyWS)
|
||
|
v1NotifyGroup.PUT("/read/:id", v1.PutNotifyRead)
|
||
|
}
|
||
|
}
|
||
|
return r
|
||
|
}
|