parent
127d0236f9
commit
15f4b1819b
@ -0,0 +1,53 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/HFO4/cloudreve/pkg/util"
|
||||
"github.com/jinzhu/gorm"
|
||||
)
|
||||
|
||||
// Tag 用户自定义标签
|
||||
type Tag struct {
|
||||
gorm.Model
|
||||
Name string // 标签名
|
||||
Icon string // 图标标识
|
||||
Color string // 图标颜色
|
||||
Type int // 标签类型(文件分类/目录直达)
|
||||
Expression string `gorm:"type:text"` // 搜索表表达式/直达路径
|
||||
UserID uint // 创建者ID
|
||||
}
|
||||
|
||||
const (
|
||||
// FileTagType 文件分类标签
|
||||
FileTagType = iota
|
||||
// DirectoryLinkType 目录快捷方式标签
|
||||
DirectoryLinkType
|
||||
)
|
||||
|
||||
// Create 创建标签记录
|
||||
func (tag *Tag) Create() (uint, error) {
|
||||
if err := DB.Create(tag).Error; err != nil {
|
||||
util.Log().Warning("无法插入离线下载记录, %s", err)
|
||||
return 0, err
|
||||
}
|
||||
return tag.ID, nil
|
||||
}
|
||||
|
||||
// DeleteTagByID 根据给定ID和用户ID删除标签
|
||||
func DeleteTagByID(id, uid uint) error {
|
||||
result := DB.Where("id = ? and user_id = ?", id, uid).Delete(&Tag{})
|
||||
return result.Error
|
||||
}
|
||||
|
||||
// GetTagsByUID 根据用户ID查找标签
|
||||
func GetTagsByUID(uid uint) ([]Tag, error) {
|
||||
var tag []Tag
|
||||
result := DB.Where("user_id = ?", uid).Find(&tag)
|
||||
return tag, result.Error
|
||||
}
|
||||
|
||||
// GetTagsByID 根据ID查找标签
|
||||
func GetTagsByID(id, uid uint) (*Tag, error) {
|
||||
var tag Tag
|
||||
result := DB.Where("user_id = ? and id = ?", uid, id).First(&tag)
|
||||
return &tag, result.Error
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"github.com/HFO4/cloudreve/service/explorer"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// CreateFilterTag 创建文件分类标签
|
||||
func CreateFilterTag(c *gin.Context) {
|
||||
var service explorer.FilterTagCreateService
|
||||
if err := c.ShouldBindJSON(&service); err == nil {
|
||||
res := service.Create(c, CurrentUser(c))
|
||||
c.JSON(200, res)
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
// CreateLinkTag 创建目录快捷方式标签
|
||||
func CreateLinkTag(c *gin.Context) {
|
||||
var service explorer.LinkTagCreateService
|
||||
if err := c.ShouldBindJSON(&service); err == nil {
|
||||
res := service.Create(c, CurrentUser(c))
|
||||
c.JSON(200, res)
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteTag 删除标签
|
||||
func DeleteTag(c *gin.Context) {
|
||||
var service explorer.TagService
|
||||
if err := c.ShouldBindUri(&service); err == nil {
|
||||
res := service.Delete(c, CurrentUser(c))
|
||||
c.JSON(200, res)
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
Loading…
Reference in new issue