package token import ( "time" "github.com/veypi/OneAuth/cfg" "github.com/veypi/OneAuth/models" "github.com/vyes-ai/vigo" ) type patchOpts struct { ID string `json:"id" parse:"path@token_id"` ExpiredAt *time.Time `json:"expired_at" parse:"json"` OverPerm *string `json:"over_perm" parse:"json"` } var _ = Router.Patch("/{token_id}", "更新 Token", tokenPatch) func tokenPatch(x *vigo.X, opts *patchOpts) (any, error) { data := &models.Token{} err := cfg.DB().Where("id = ?", opts.ID).First(data).Error if err != nil { return nil, err } optsMap := make(map[string]interface{}) if opts.ExpiredAt != nil { optsMap["expired_at"] = opts.ExpiredAt } if opts.OverPerm != nil { optsMap["over_perm"] = opts.OverPerm } err = cfg.DB().Model(data).Updates(optsMap).Error return data, err } type deleteOpts struct { ID string `parse:"path@token_id"` } var _ = Router.Delete("/{token_id}", "删除 Token", tokenDelete) func tokenDelete(x *vigo.X, opts *deleteOpts) (any, error) { data := &models.Token{} err := cfg.DB().Where("id = ?", opts.ID).Delete(data).Error return data, err }