144 lines
4.8 KiB
Go
144 lines
4.8 KiB
Go
package v1
|
|
|
|
import (
|
|
"github.com/IceWhaleTech/CasaOS/model"
|
|
"github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err"
|
|
"github.com/IceWhaleTech/CasaOS/service"
|
|
model2 "github.com/IceWhaleTech/CasaOS/service/model"
|
|
"github.com/gin-gonic/gin"
|
|
"net/http"
|
|
"strconv"
|
|
)
|
|
|
|
// @Summary 获取列表
|
|
// @Produce application/json
|
|
// @Accept application/json
|
|
// @Tags share
|
|
// @Security ApiKeyAuth
|
|
// @Success 200 {string} string "ok"
|
|
// @Router /share/list [get]
|
|
func GetShareDirList(c *gin.Context) {
|
|
list := service.MyService.ShareDirectory().List(true)
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS), Data: list})
|
|
}
|
|
|
|
// @Summary 添加文件共享
|
|
// @Produce application/json
|
|
// @Accept multipart/form-data
|
|
// @Tags share
|
|
// @Security ApiKeyAuth
|
|
// @Param path formData string true "要分享的文件路径"
|
|
// @Param name formData string true "名称"
|
|
// @Param comment formData string true "描述"
|
|
// @Param read_only formData bool false "是否只读"
|
|
// @Param writeable formData bool false "是否可写"
|
|
// @Param browseable formData bool false "是否可浏览"
|
|
// @Param user formData string false "用户"
|
|
// @Success 200 {string} string "ok"
|
|
// @Router /share/add [post]
|
|
func PostShareDirAdd(c *gin.Context) {
|
|
|
|
name := c.PostForm("name")
|
|
comment := c.PostForm("comment")
|
|
path := c.PostForm("path")
|
|
readOnly, _ := strconv.ParseBool(c.DefaultPostForm("read_only", "false"))
|
|
writeable, _ := strconv.ParseBool(c.DefaultPostForm("writeable", "true"))
|
|
browse, _ := strconv.ParseBool(c.DefaultPostForm("browseable", "true"))
|
|
user := c.PostForm("user")
|
|
|
|
if len(name) == 0 || len(comment) == 0 || len(path) == 0 {
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.INVALID_PARAMS, Message: oasis_err.GetMsg(oasis_err.INVALID_PARAMS)})
|
|
return
|
|
}
|
|
|
|
var m model2.ShareDirDBModel
|
|
m.Name = name
|
|
m.Comment = comment
|
|
m.Path = path
|
|
m.ReadOnly = readOnly
|
|
m.Writeable = writeable
|
|
m.Browseable = browse
|
|
m.ValidUsers = user
|
|
|
|
service.MyService.ShareDirectory().Add(&m)
|
|
service.MyService.ShareDirectory().UpConfig()
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS)})
|
|
}
|
|
|
|
// @Summary 删除分享
|
|
// @Produce application/json
|
|
// @Accept application/json
|
|
// @Tags share
|
|
// @Security ApiKeyAuth
|
|
// @Param id path string true "id"
|
|
// @Success 200 {string} string "ok"
|
|
// @Router /share/del/{id} [delete]
|
|
func DeleteShareDirDel(c *gin.Context) {
|
|
id := c.Param("id")
|
|
service.MyService.ShareDirectory().Delete(id)
|
|
service.MyService.ShareDirectory().UpConfig()
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS)})
|
|
}
|
|
|
|
// @Summary 分享详情
|
|
// @Produce application/json
|
|
// @Accept application/json
|
|
// @Tags share
|
|
// @Security ApiKeyAuth
|
|
// @Param id path string true "id"
|
|
// @Success 200 {string} string "ok"
|
|
// @Router /share/info/{id} [get]
|
|
func GetShareDirInfo(c *gin.Context) {
|
|
id := c.Param("id")
|
|
info := service.MyService.ShareDirectory().Info(id)
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS), Data: info})
|
|
}
|
|
|
|
// @Summary 更新分享详情
|
|
// @Produce application/json
|
|
// @Accept application/json
|
|
// @Tags share
|
|
// @Security ApiKeyAuth
|
|
// @Param id path string true "id"
|
|
// @Param path formData string true "要分享的文件路径"
|
|
// @Param name formData string true "名称"
|
|
// @Param comment formData string true "描述"
|
|
// @Param read_only formData bool false "是否只读"
|
|
// @Param writeable formData bool false "是否可写"
|
|
// @Param browseable formData bool false "是否可浏览"
|
|
// @Param user formData string false "用户"
|
|
// @Success 200 {string} string "ok"
|
|
// @Router /share/update/{id} [put]
|
|
func PutShareDirEdit(c *gin.Context) {
|
|
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
|
|
|
if err != nil || id == 0 {
|
|
//todo 报错出去
|
|
}
|
|
|
|
name := c.PostForm("name")
|
|
comment := c.PostForm("comment")
|
|
path := c.PostForm("path")
|
|
readOnly, _ := strconv.ParseBool(c.DefaultPostForm("read_only", "false"))
|
|
writeable, _ := strconv.ParseBool(c.DefaultPostForm("writeable", "true"))
|
|
browse, _ := strconv.ParseBool(c.DefaultPostForm("browseable", "true"))
|
|
user := c.PostForm("user")
|
|
|
|
if len(name) == 0 || len(comment) == 0 || len(path) == 0 {
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.INVALID_PARAMS, Message: oasis_err.GetMsg(oasis_err.INVALID_PARAMS)})
|
|
return
|
|
}
|
|
|
|
var m model2.ShareDirDBModel
|
|
m.Id = uint(id)
|
|
m.Name = name
|
|
m.Comment = comment
|
|
m.Path = path
|
|
m.ReadOnly = readOnly
|
|
m.Writeable = writeable
|
|
m.Browseable = browse
|
|
m.ValidUsers = user
|
|
service.MyService.ShareDirectory().Update(&m)
|
|
service.MyService.ShareDirectory().UpConfig()
|
|
c.JSON(http.StatusOK, model.Result{Success: oasis_err.SUCCESS, Message: oasis_err.GetMsg(oasis_err.SUCCESS)})
|
|
}
|