mirror of https://github.com/Xhofe/alist
✨ account and meta add id
parent
959ef620fb
commit
5f34b8ab80
|
@ -8,7 +8,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Account struct {
|
type Account struct {
|
||||||
Name string `json:"name" gorm:"primaryKey" binding:"required"`
|
ID uint `json:"id" gorm:"primaryKey"`
|
||||||
|
Name string `json:"name" gorm:"unique" binding:"required"`
|
||||||
Index int `json:"index"`
|
Index int `json:"index"`
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
|
@ -38,7 +39,15 @@ var accountsMap = map[string]Account{}
|
||||||
|
|
||||||
// SaveAccount save account to database
|
// SaveAccount save account to database
|
||||||
func SaveAccount(account Account) error {
|
func SaveAccount(account Account) error {
|
||||||
if err := conf.DB.Save(account).Error; err != nil {
|
if err := conf.DB.Save(&account).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
RegisterAccount(account)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateAccount(account Account) error {
|
||||||
|
if err := conf.DB.Create(&account).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
RegisterAccount(account)
|
RegisterAccount(account)
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
import "github.com/Xhofe/alist/conf"
|
import (
|
||||||
|
"github.com/Xhofe/alist/conf"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
type Meta struct {
|
type Meta struct {
|
||||||
Path string `json:"path" gorm:"primaryKey" binding:"required"`
|
ID uint `json:"id" gorm:"primaryKey"`
|
||||||
|
Path string `json:"path" gorm:"unique" binding:"required"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
Hide string `json:"hide"`
|
Hide string `json:"hide"`
|
||||||
}
|
}
|
||||||
|
@ -19,11 +23,16 @@ func GetMetaByPath(path string) (*Meta, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func SaveMeta(meta Meta) error {
|
func SaveMeta(meta Meta) error {
|
||||||
return conf.DB.Save(meta).Error
|
return conf.DB.Save(&meta).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateMeta(meta Meta) error {
|
||||||
|
return conf.DB.Create(&meta).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteMeta(path string) error {
|
func DeleteMeta(path string) error {
|
||||||
meta := Meta{Path: path}
|
meta := Meta{Path: path}
|
||||||
|
log.Debugf("delete meta: %+v", meta)
|
||||||
return conf.DB.Delete(&meta).Error
|
return conf.DB.Delete(&meta).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,31 @@ func GetAccounts(c *gin.Context) {
|
||||||
SuccessResp(c, accounts)
|
SuccessResp(c, accounts)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateAccount(c *gin.Context) {
|
||||||
|
var req model.Account
|
||||||
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
ErrorResp(c, err, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
driver, ok := drivers.GetDriver(req.Type)
|
||||||
|
if !ok {
|
||||||
|
ErrorResp(c, fmt.Errorf("no [%s] driver", req.Type), 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
now := time.Now()
|
||||||
|
req.UpdatedAt = &now
|
||||||
|
if err := model.CreateAccount(req); err != nil {
|
||||||
|
ErrorResp(c, err, 500)
|
||||||
|
} else {
|
||||||
|
err = driver.Save(&req, nil)
|
||||||
|
if err != nil {
|
||||||
|
ErrorResp(c, err, 500)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
SuccessResp(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func SaveAccount(c *gin.Context) {
|
func SaveAccount(c *gin.Context) {
|
||||||
var req model.Account
|
var req model.Account
|
||||||
if err := c.ShouldBind(&req); err != nil {
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
|
|
@ -15,6 +15,20 @@ func GetMetas(c *gin.Context) {
|
||||||
SuccessResp(c, metas)
|
SuccessResp(c, metas)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateMeta(c *gin.Context) {
|
||||||
|
var req model.Meta
|
||||||
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
ErrorResp(c, err, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.Path = utils.ParsePath(req.Path)
|
||||||
|
if err := model.CreateMeta(req); err != nil {
|
||||||
|
ErrorResp(c, err, 500)
|
||||||
|
} else {
|
||||||
|
SuccessResp(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func SaveMeta(c *gin.Context) {
|
func SaveMeta(c *gin.Context) {
|
||||||
var req model.Meta
|
var req model.Meta
|
||||||
if err := c.ShouldBind(&req); err != nil {
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
@ -34,6 +48,7 @@ func DeleteMeta(c *gin.Context) {
|
||||||
//path = utils.ParsePath(path)
|
//path = utils.ParsePath(path)
|
||||||
if err := model.DeleteMeta(path); err != nil {
|
if err := model.DeleteMeta(path); err != nil {
|
||||||
ErrorResp(c, err, 500)
|
ErrorResp(c, err, 500)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
SuccessResp(c)
|
SuccessResp(c)
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,14 +27,16 @@ func InitApiRouter(r *gin.Engine) {
|
||||||
admin.GET("/login", Login)
|
admin.GET("/login", Login)
|
||||||
admin.GET("/settings", GetSettings)
|
admin.GET("/settings", GetSettings)
|
||||||
admin.POST("/settings", SaveSettings)
|
admin.POST("/settings", SaveSettings)
|
||||||
admin.POST("/account", SaveAccount)
|
admin.POST("/account/create", CreateAccount)
|
||||||
|
admin.POST("/account/save", SaveAccount)
|
||||||
admin.GET("/accounts", GetAccounts)
|
admin.GET("/accounts", GetAccounts)
|
||||||
admin.DELETE("/account", DeleteAccount)
|
admin.DELETE("/account", DeleteAccount)
|
||||||
admin.GET("/drivers", GetDrivers)
|
admin.GET("/drivers", GetDrivers)
|
||||||
admin.GET("/clear_cache", ClearCache)
|
admin.GET("/clear_cache", ClearCache)
|
||||||
|
|
||||||
admin.GET("/metas", GetMetas)
|
admin.GET("/metas", GetMetas)
|
||||||
admin.POST("/meta", SaveMeta)
|
admin.POST("/meta/create", CreateMeta)
|
||||||
|
admin.POST("/meta/save", SaveMeta)
|
||||||
admin.DELETE("/meta", DeleteMeta)
|
admin.DELETE("/meta", DeleteMeta)
|
||||||
}
|
}
|
||||||
Static(r)
|
Static(r)
|
||||||
|
|
Loading…
Reference in New Issue