459 lines
18 KiB
Go
459 lines
18 KiB
Go
package v1
|
||
|
||
import (
|
||
json2 "encoding/json"
|
||
"github.com/IceWhaleTech/CasaOS/model"
|
||
"github.com/IceWhaleTech/CasaOS/pkg/config"
|
||
oasis_err2 "github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err"
|
||
"github.com/IceWhaleTech/CasaOS/service"
|
||
"github.com/gin-gonic/gin"
|
||
"net/http"
|
||
)
|
||
|
||
// @Summary 登录zerotier获取token
|
||
// @Produce application/json
|
||
// @Accept multipart/form-data
|
||
// @Tags zerotier
|
||
// @Param username formData string true "User name"
|
||
// @Param pwd formData string true "password"
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/login [post]
|
||
func ZeroTierGetToken(c *gin.Context) {
|
||
username := c.PostForm("username")
|
||
pwd := c.PostForm("pwd")
|
||
if len(username) == 0 || len(pwd) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
errInfo := service.MyService.ZeroTier().GetToken(username, pwd)
|
||
|
||
if len(errInfo) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: oasis_err2.GetMsg(oasis_err2.GET_TOKEN_ERROR)})
|
||
} else {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
|
||
}
|
||
}
|
||
|
||
// @Summary 注册zerotier
|
||
// @Produce application/json
|
||
// @Accept multipart/form-data
|
||
// @Tags zerotier
|
||
// @Param firstName formData string true "first name"
|
||
// @Param pwd formData string true "password"
|
||
// @Param email formData string true "email"
|
||
// @Param lastName formData string true "last name"
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/register [post]
|
||
func ZeroTierRegister(c *gin.Context) {
|
||
firstName := c.PostForm("firstName")
|
||
pwd := c.PostForm("pwd")
|
||
email := c.PostForm("email")
|
||
lastName := c.PostForm("lastName")
|
||
if len(firstName) == 0 || len(pwd) == 0 || len(email) == 0 || len(lastName) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
errInfo := service.MyService.ZeroTier().ZeroTierRegister(email, lastName, firstName, pwd)
|
||
if len(errInfo) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
|
||
} else {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.ERROR, Message: errInfo})
|
||
}
|
||
}
|
||
|
||
// @Summary 是否需要登录zerotier
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "false:需要登录,true:不需要登录"
|
||
// @Router /zerotier/islogin [get]
|
||
func ZeroTierIsNeedLogin(c *gin.Context) {
|
||
if len(config.ZeroTierInfo.Token) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: false})
|
||
} else {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: true})
|
||
}
|
||
}
|
||
|
||
// @Summary 获取zerotier网络列表
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/list [get]
|
||
func ZeroTierGetNetworkList(c *gin.Context) {
|
||
jsonList, joined := service.MyService.ZeroTier().ZeroTierNetworkList(config.ZeroTierInfo.Token)
|
||
rdata := make(map[string]interface{})
|
||
rdata["network_list"] = jsonList
|
||
rdata["joined"] = joined
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: rdata})
|
||
}
|
||
|
||
// @Summary 获取zerotier网络详情
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/info/{id} [get]
|
||
func ZeroTierGetNetworkGetInfo(c *gin.Context) {
|
||
id := c.Param("id")
|
||
if len(id) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info, joined := service.MyService.ZeroTier().ZeroTierGetInfo(config.ZeroTierInfo.Token, id)
|
||
rdata := make(map[string]interface{})
|
||
rdata["info"] = info
|
||
rdata["joined"] = joined
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: rdata})
|
||
}
|
||
|
||
//// @Summary 获取zerotier网络状态
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/status [get]
|
||
//func ZeroTierGetNetworkGetStatus(c *gin.Context) {
|
||
// status := service.MyService.ZeroTier().ZeroTierGetStatus(config.ZeroTierInfo.Token)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: status})
|
||
//}
|
||
|
||
//// @Summary 修改网络类型
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param type formData string true "Private true/false"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/type/{id} [put]
|
||
//func ZeroTierEditType(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// t := c.PostForm("type")
|
||
// if len(id) == 0 || len(t) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"config":{"private":` + t + `}}`
|
||
// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
//// @Summary 修改名称
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param name formData string true "需要过滤特殊字符串"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/name/{id} [put]
|
||
//func ZeroTierEditName(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// name := c.PostForm("name")
|
||
// if len(id) == 0 || len(name) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"config":{"name":"` + name + `"}}`
|
||
// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
//// @Summary V6Assign (注意三个属性需要一起传过来,不传的会被zerotier设置成false)
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param v6plan formData string false "true/false"
|
||
//// @Param rfc formData string false "true/false"
|
||
//// @Param auto formData string false "true/false"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/v6assign/{id} [put]
|
||
//func ZeroTierEditV6Assign(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// v6plan := c.PostForm("v6plan")
|
||
// rfc := c.PostForm("rfc")
|
||
// auto := c.PostForm("auto")
|
||
// if len(id) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// var spicing string
|
||
// if len(v6plan) > 0 {
|
||
// spicing = `"6plane":` + v6plan
|
||
// }
|
||
// if len(rfc) > 0 {
|
||
// if len(spicing) > 0 {
|
||
// spicing += ","
|
||
// }
|
||
// spicing += `"rfc4193":` + rfc
|
||
// }
|
||
//
|
||
// if len(auto) > 0 {
|
||
// if len(spicing) > 0 {
|
||
// spicing += ","
|
||
// }
|
||
// spicing += `"zt":` + auto
|
||
// }
|
||
// postData := `{"config":{"v6AssignMode":{` + spicing + `}}}`
|
||
// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
//// @Summary Broadcast
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param broadcast formData string true "true/false"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/broadcast/{id} [put]
|
||
//func ZeroTierEditBroadcast(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// broadcast := c.PostForm("broadcast")
|
||
// if len(id) == 0 || len(broadcast) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"config":{"enableBroadcast":` + broadcast + `}}`
|
||
// info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, postData, id)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
// @Summary 网络列表
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/member/{id} [get]
|
||
func ZeroTierMemberList(c *gin.Context) {
|
||
id := c.Param("id")
|
||
if len(id) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info := service.MyService.ZeroTier().MemberList(config.ZeroTierInfo.Token, id)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
// @Summary create new network
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/create [post]
|
||
func ZeroTierCreateNetwork(c *gin.Context) {
|
||
info := service.MyService.ZeroTier().CreateNetwork(config.ZeroTierInfo.Token)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
//// @Summary 通过/拒绝客户端
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param mId path string true "member_id"
|
||
//// @Param auth formData string true "true/false"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/member/{id}/auth/{mId} [put]
|
||
//func ZeroTierMemberAuth(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// mId := c.Param("mId")
|
||
// auth := c.PostForm("auth")
|
||
// if len(id) == 0 || len(mId) == 0 || len(auth) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"config":{"authorized":` + auth + `}}`
|
||
// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
//// @Summary 修改名字
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param mId path string true "member_id"
|
||
//// @Param name formData string true "name"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/member/{id}/name/{mId} [put]
|
||
//func ZeroTierMemberName(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// mId := c.Param("mId")
|
||
// name := c.PostForm("name")
|
||
// if len(id) == 0 || len(mId) == 0 || len(name) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"name":"` + name + `"}`
|
||
// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
//// @Summary 修改桥接
|
||
//// @Produce application/json
|
||
//// @Accept application/json
|
||
//// @Tags zerotier
|
||
//// @Security ApiKeyAuth
|
||
//// @Param id path string true "network id"
|
||
//// @Param mId path string true "member_id"
|
||
//// @Param bridge formData string true "true/false"
|
||
//// @Success 200 {string} string "ok"
|
||
//// @Router /zerotier/member/{id}/bridge/{mId} [put]
|
||
//func ZeroTierMemberBridge(c *gin.Context) {
|
||
// id := c.Param("id")
|
||
// mId := c.Param("mId")
|
||
// bridge := c.PostForm("bridge")
|
||
// if len(id) == 0 || len(mId) == 0 || len(bridge) == 0 {
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
// return
|
||
// }
|
||
// postData := `{"config":{"activeBridge":` + bridge + `}}`
|
||
// info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, postData, id, mId)
|
||
// c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
//}
|
||
|
||
// @Summary 修改网络
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Param json formData string true "json数据"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/edit/{id} [put]
|
||
func ZeroTierEdit(c *gin.Context) {
|
||
id := c.Param("id")
|
||
json := c.PostForm("json")
|
||
if len(id) == 0 || len(json) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info := service.MyService.ZeroTier().EditNetwork(config.ZeroTierInfo.Token, json, id)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
// @Summary 获取已加入的网络
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/joined/list [get]
|
||
func ZeroTierJoinedList(c *gin.Context) {
|
||
info := service.MyService.ZeroTier().GetJoinNetworks()
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: json2.RawMessage(info)})
|
||
}
|
||
|
||
// @Summary 修改网络用户信息
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Param mId path string true "mId"
|
||
// @Param json formData string true "json数据"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/member/{id}/edit/{mId} [put]
|
||
func ZeroTierMemberEdit(c *gin.Context) {
|
||
id := c.Param("id")
|
||
mId := c.Param("mId")
|
||
json := c.PostForm("json")
|
||
if len(id) == 0 || len(json) == 0 || len(mId) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info := service.MyService.ZeroTier().EditNetworkMember(config.ZeroTierInfo.Token, json, id, mId)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
// @Summary 删除网络中的用户
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Param mId path string true "member_id"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/member/{id}/del/{mId} [delete]
|
||
func ZeroTierMemberDelete(c *gin.Context) {
|
||
id := c.Param("id")
|
||
mId := c.Param("mId")
|
||
if len(id) == 0 || len(mId) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info := service.MyService.ZeroTier().DeleteMember(config.ZeroTierInfo.Token, id, mId)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
// @Summary 删除网络
|
||
// @Produce application/json
|
||
// @Accept application/json
|
||
// @Tags zerotier
|
||
// @Security ApiKeyAuth
|
||
// @Param id path string true "network id"
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/network/{id}/del [delete]
|
||
func ZeroTierDeleteNetwork(c *gin.Context) {
|
||
id := c.Param("id")
|
||
if len(id) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
info := service.MyService.ZeroTier().DeleteNetwork(config.ZeroTierInfo.Token, id)
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS), Data: info})
|
||
}
|
||
|
||
// @Summary 加入网络
|
||
// @Produce application/json
|
||
// @Accept multipart/form-data
|
||
// @Tags zerotier
|
||
// @Param id path string true "network id"
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/join/{id} [post]
|
||
func ZeroTierJoinNetwork(c *gin.Context) {
|
||
networkId := c.Param("id")
|
||
service.MyService.ZeroTier().ZeroTierJoinNetwork(networkId)
|
||
if len(networkId) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
|
||
}
|
||
|
||
// @Summary 获取zerotier网络列表
|
||
// @Produce application/json
|
||
// @Accept multipart/form-data
|
||
// @Tags zerotier
|
||
// @Param id path string true "network id"
|
||
// @Security ApiKeyAuth
|
||
// @Success 200 {string} string "ok"
|
||
// @Router /zerotier/leave/{id} [post]
|
||
func ZeroTierLeaveNetwork(c *gin.Context) {
|
||
networkId := c.Param("id")
|
||
service.MyService.ZeroTier().ZeroTierLeaveNetwork(networkId)
|
||
if len(networkId) == 0 {
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.INVALID_PARAMS, Message: oasis_err2.GetMsg(oasis_err2.INVALID_PARAMS)})
|
||
return
|
||
}
|
||
c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
|
||
}
|